SQLite Support in SlimTune

Published February 07, 2010
Advertisement
I've mentioned before that most of SlimTune's core functionality is pluggable. This actually includes the underlying data storage system. The app works through a fairly simple interface, and even SQL is only used by the visualizers and not the core program. To date, the engine in use was Microsoft's SQL Server Compact Edition (SQLCE). With the next release, I'm introducing support for SQLite as well.

Let's recap. Every other profiler I'm aware of works in more or less the same way. While the application is running, data is written to a file. Once the run is complete, the frontend steps in to parse the data and visualize it one way or another. SlimTune on the other hand allows (encourages, in fact) live visualization while the application is running. It also supports very different visualizations that slice the data in entirely different ways. The enabling technology for these features is the use of an embedded database. I'm not sure why no one else has taken this approach, but my theory at the time was that it was a simple matter of performance. Databases have to be manipulated with SQL, have to store everything in tables, etc. I suspected that updating a database so often was a problem. My goal was to write a blindingly fast database backend that would be capable of handling large amounts of data efficiently.

Read the rest of the post at Ventspace.
0 likes 2 comments

Comments

NineYearCycle
You're probably right about the performance aspect being a large deterrent to live profiling. I've tried explicit function call profiling (where I've embedded a profiling call within each function) before an the overhead for simply recording that much information is enormous.

Attempting to do live profiling over the top could be prohibitively costly. Could SlimTune be capable of doing co-profiling where the program runs on one machine and the profiler runs on another?
February 07, 2010 04:01 PM
Promit
Quote: Original post by NineYearCycle
Could SlimTune be capable of doing co-profiling where the program runs on one machine and the profiler runs on another?
Supported since day 1. It's baked right into the core design.
Quote: I've tried explicit function call profiling (where I've embedded a profiling call within each function) before an the overhead for simply recording that much information is enormous.
Actually what I found was that polling timing information (QueryPerformanceCounter) was a dramatic part of the cost in that type of profiling.
February 07, 2010 06:09 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement