Let’s take a look at the results we obtained in the Report panel for the VCL application (when the Classes Data category is selected in the Explorer panel).
The only class for which the Live Count column is not zero is TObject
. This means there are objects that still exist in memory after the application finished. To view the list of corresponding object instances, double-click the Objects category in the Explorer panel. As you can see, there are as numerous object instances as reported in the class list (100 instances of the TObject
class).
If you run the Allocation sample application, the profiling results of the Classes Data category will look like this:
As you can see, the Report panel lists two classes: C++ native memory and CHandleMap. The latter class is used to implement the mapping mechanism of Windows object handles, and is not interesting to us. Let us focus on the C++ native memory class, it corresponds to one or several unreleased memory block(s) which were allocated by the profiled application. The number of these blocks is given in the Live Count column. When the Objects category is selected in the Explorer panel, the Report panel will list the corresponding number of memory blocks. In our example, we have two blocks marked as C++ native memory.10 and C++ native memory.38. The Creation Call Stack pane displays a stack of function calls that led to the creation of an instance selected in Report. The top function is the very function that created the given object. For example, for the Allocation application we have the following call stack:
Double-clicking a function displays its source code (if it is available) in the Editor panel.Selecting a function and choosing Show Source File from the Edit menu displays the function’s source code in Visual Studio’s Code Editor.Double-clicking a function displays its source code (if it is available) in Embarcadero RAD Studio’s Editor. (The link to source code is only available if your application was compiled with debug information. See How AQTime Profilers Use Metadata and Debug Information. In addition, the path to the source files must be specified in the Project Search Directories or Search Directory dialog.)
Note: | If the call stack is empty, most likely, you have not added any elements to the Collect Stack Information pane or you have not selected any stack area in this pane. For more information, see Specifying Modules to Be Included Into the Call Stack.
Another possible reason is the absence of debug information for profiled modules that have been added to the Collect Stack Information pane. For more information, see How AQTime Profilers Use Metadata and Debug Information. |
Using the Summary panel, you can review the summarized statistics on the entire profile run. For instance, for the VCL application: