Features Added to AQTime 6.0

Applies to AQTime 8.81, last modified on January 18, 2022

This topic describes the changes made to AQTime 6.0. For information on the changes made to other versions of the product, see Version History.

Overall Improvements

  • Profiling scripts. Now you can use AQTime to profile scripts executed by the Microsoft Scripting Engine. These, for example, include VBScript and JScript routines located on web pages. To profile a script, you should launch the host application under AQTime and then execute the script in that application. AQTime recognizes the script’s activity and reports its results along with the application results. Currently, scripts can be profiled with the Performance, Coverage and Function Trace profilers. For more information about this, see Profiling Scripts - Overview.

  • Optimization of function parameters retrieval. The Function Trace profiler has been optimized to increase its performance when gathering the values of function call parameters. In previous versions, these values were collected from the entire application if the Get parameter info profiler option was enabled. As a result, a lot of memory was required to collect the results, which slowed down the profiling process significantly.

    In AQTime ver. 6, this feature is in the profiling area settings. Now including areas have the Retrieve parameter values property. If the property is enabled, the Function Trace profiler only logs the actual parameter values for the functions that belong to the area. Thus, the profiler only inspects the routines you are interested in.

  • Filtering out standard units. Most development environments include their standard libraries in applications. The library routines perform a lot of auxiliary tasks, interact with classes and controls, draw forms, and so on. However, generally, profiling of standard units does not make a lot of sense, since their code cannot be modified. To only focus on your code, you can exclude standard libraries from profiling. This functionality can be enabled via the Exclude standard source files option, or via the  Exclude Standard Source Files button of the Setup panel.

  • Extended .NET code debugger. AQTime can now obtain a call stack for .NET routines, trace specific .NET events and display this information in the Event View panel. This functionality is available if the Use extended debugger for managed code option is enabled.

New Profilers

  • New Reference Count Profiler. AQTime includes a new Reference Count profiler in version 6. With its help you can trace references to interface objects that implement the IUnknown interface or its descendants. Analyzing the number of references and the way they are created and removed, you can track unreleased or prematurely released interface objects. Read Reference Count Profiler for more information.

  • New BDE SQL Profiler. Using a new BDE SQL profiler, you can time the execution of stored procedures and queries made to the databases via the Borland Database Engine.

  • New Unused VCL Units Profiler. This profiler is designed to decrease the size of Delphi applications. It analyzes the application’s source code and debug information. Using the profiler you can detect both standard and user units that are added to the project but are not used by the application. These units can safely be excluded thus reducing the application’s size. Read Unused VCL Units Profiler - Overview for more information.

Allocation and Resource Profiler Improvements

  • Allocation profiler support for release versions of Visual C++ applications. In previous versions of AQTime, the Allocation profiler could only retrieve data from Visual C++ applications compiled in the Release configuration if the application was prepared in a special way. Now these preparations are not required. See Allocation Profiler - Analyzing Visual C++ Applications for details.

  • Tracing attempts to access released memory blocks. The Allocation profiler has a new Fill released memory blocks option that overwrites the released memory with invalid data, so an attempt to read data from a released block will result in an error. Using this feature you can detect functions that read data from de-allocated memory blocks.

  • Changes in the algorithm of checking bounds of memory blocks. The algorithm was improved to perform memory verification not only on block re-allocation or release, but also on retrieving results and on terminating the application. This helps to pin-point violations of memory block bounds even in for memory leaks or when the corresponding blocks were not released. Read Checking Bounds of Memory Blocks for more information.

  • GDI Plus support for the Resource profiler. The Resource profiler contains a new GDI+ Resources category. Use this category to track the execution of GDI+ functions. See Resource Profiler - "GDI+ Resources" Function Category (gdiplus.dll).

Other Improvements

  • The data shown in the Call Tree panel can now be stored in a separate file. This can be done via the Save All context menu item. Also, the panel’s context menu has two more items, Expand All and Collapse All, that expand and collapse all of the nodes of the call tree.

  • The Event View panel has several improvements:

    • By default, AQTime detects all the exceptions that occur in the profiled application and logs them in the Event View panel. By using the new Exception filter settings you can specify Win32 exceptions that will be ignored. See Exceptions in the Event View Panel.

    • By using the new Generate Process Dump item of the Event View panel’s toolbar, you can command AQTime to generate files that contain information about the profiled application, for example, a memory dump, CPU register values, information about loaded modules, threads and a call stack for each thread. You can then analyze the generated file in AQtrace or Visual Studio and explore what happens in your application. See Generating Dumps for Profiled Applications.

    • By using the new Generate dump on exception setting you can command AQTime to generate dumps on exceptions automatically.

  • By using a single function call the profiled applications can now command AQTime to generate profiling results. See Getting Results During Profiling.

  • By using a new Save Results to Source File item of the Editor’s context menu, you can store profiling results to source files directly from AQTime.

  • The context menu of the Report panel has been extended. Now you can add the selected routines and classes not only to profiling areas but also to triggers and actions. See Adding Selected Routines and Classes to Profiling Areas, Triggers and Actions.

  • For applications running under the .NET Framework ver. 2.0 or later, AQTime is now able to obtain user-defined names of CLR threads and display them in the Explorer panel.

  • The Search Directory and Project Search Directories dialogs can now accept environment variables.

  • The line profiling results shown in the Editor’s gutter can be printed along with the source code. These results are transformed to comments that precede the source code lines.

  • When comparing the results of several result sets, you can now use the Editor and Debugger panels that display the latest version of the application’s source code. Thus, you can review the code of the routines whose performance was different during each profiling session.

  • Interfaces that provide access to the AQTime engine via COM have been extended. Now the methods of the IntegrationManager object add a new aqTimeIntegrationRunMode object that you can select in the profiling mode, read/set run parameters and manage profiled modules. See Working With AQTime via COM for more information.

See Also

Version History
What’s New

Highlight search results