Profilers |
|
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 |