Profilers
Svengali Profiler Package
Profilers
Contact David Jones

A Profiler records aspects of the profiled process and its environment. Profilers are split into two types; sampling and activating.

Sampling Profilers

A Sampling Profiler is one which can only examine and record the state of the world during short intervals of time separated by roughly equivalent periods of 'sleeping'. The profilers operate in a separate process to the profiled one, and so other than temporarily suspending the profiled process while gathering data, they will not interfere with it.

Sampling profilers have a constant low processing overhead, so profiling a real application for minutes at a time is possible. Their disadvantages are the relative lack of information, and you will not see the same results from each run of an application, though it will be statistically similar with sufficient samples.

Activating Profiler

An Activating Profiler is one which has wound itself into the system so that when a particular action takes place, such as creating a new object, the profiler will be informed at that point.

Activating profilers overhead is relative to the number of times it is called, so for every method entry that could be tens of thousands a second. These profilers are activated within the flow of the profiled process and so can upset the results, and especially the timings of other sampling profilers. Running the same code should produce the same set of results.

Processes

The profiling system is currently set up to profile the single process forked to evaluate the code supplied in the New Profile dialog. Any processes which this process may in turn fork will not be recorded by the profilers. It is expected that this limitation will be lifted in future implementations.

List of Profilers

There is currently only a small range of profilers. There are plans for a number of others, and additionally once the internals have been reworked, documentation on writing your own will be put together.

Profiler Type Records
Event Profiler Activating All triggered events, and their registered event handlers
New Profiler Activating Creation of new instances
Window Dispatch Profiler Activating Dispatching of Windows messages to Dolphin views
Method Stack Profiler Sampling Details of the message stack