The Explorer panel contains a list of profiling result sets labeled with the date and time of result generation. You can merge two or more result sets. Numeric values of the combined sets are calculated as a sum or as the average, maximum or minimum value of the appropriate values of the merged result sets. (see below).
The advantage of merging is that you can focus on important statistics collected during several profiling sessions. Note that you shouldn't make changes that may affect profiling results. For example, if you rename a function or optimize the algorithm of a function, you will not be able to merge profiling results.
How to Merge Results
To merge results manually:
Select the desired result sets in the Explorer panel (use CTRL or SHIFT for multi-selection). Note that you can also select previously merged results.
Choose Merge from the Explorer toolbar or from the context menu.
|Note:||If you merge results of the Performance or Function Trace profiler, make sure they were generated by the same counter. AQTime cannot merge results that were generated by different counters.|
To merge results automatically:
Use the Auto-merge option group to configure AQTime to automatically merge new results after each profiling session. The group includes two options: Active and Folder name. The Active option lets you turn on or turn off auto-merging. Folder name specifies the name of the cumulative result set with which every new result set will be automatically merged.
After the merging is over, the resulting record is moved to the Merged Results section of the Explorer panel.
Note that the merging process may take some time. When AQTime is merging results, it informs you that the merging process is not finished yet. You can click Cancel in the notification window to interrupt the merging process. In this case, no merging results are generated.
|Note:||By default, the Merged Results section stores only the last five merged results. If you want to keep more results, move them to the Saved Results section.|
How Merging Works
AQTime merges column values according to the type of results the columns store. When merging columns that contain minimum or maximum values (for example, the Min Time and Max Time columns), AQTime includes the minimum and maximum values in the merged result set. The results of the Time and Hit Count profilers are summarized. Average values (for example, Average Time) are recalculated. The values specified in percent columns (for example, % Time) are also recalculated according to the summarized values.
Now we will tell you how AQTime merges results using an example. Suppose, you profiled the
fooA function two times with the Coverage profiler and then merged the results of these two runs. The resulting Hit Count value of the
fooA function will be the sum of Hit Count values in these two results. If you profiled
fooA at line level, the lines’ Hit Count results will also be summarized. A routine’s Lines Covered and Lines Uncovered results will not be summarized. They will be recalculated according to the line’s Hit Count values in the merged result. The % Covered result of a routine will be recalculated according to the Lines Covered and Lines Uncovered results. Therefore, it will show what portion of the
fooA function has been executed after those two runs of the Coverage profiler.
Merging Results by Threads
Some AQTime profilers (for instance, the Performance or Coverage profiler) group results by threads. The result sets generated by these profilers contain the All Threads group that stores the results collected from all threads.
To work around this limitation, you can assign custom names to threads in your application. In this case, AQTime identifies the threads by their custom names rather than by their IDs and is able to find matching threads in different result sets and merge them. For information on how to specify custom names for threads, see Assigning Names to Threads.
Viewing Merged Results
The Summary panel displays brief profiling results for all merged result sets. It displays session information, profiler-dependent data and profiler options. It does not show run settings and system information sections. For profilers that organize results by threads, the panel shows summary results for all threads and for each individual thread.
The Report panel displays detailed information about every profiled routine, object, class and so on. The panel contents are the same as for ordinary result sets. The difference is that individual values are calculated as described above: the actual measurements are summarized, derived characteristics are recalculated, minimum and maximum values are chosen via comparison and so on. Additional information on merged results can also be displayed in the Editor, Call Graph, Call Tree, Details and Disassembler panels.