Venerable Tool Now Profiles .NET Apps
By Mike Riley
Gone are the days of simple client-side applications, when bottlenecks were merely the amount of time it took an application to initialize and appear ready for the user s interaction. The splash screen was invented to give people something to look at while they waited for the software to become available. Today s sophisticated applications are distributed, Web-enabled front-ends that intertwine with numerous dependencies from physical and virtual machines. Rectangular images no longer satisfy customers frustration with application bottlenecks. Execution expectations are higher than ever, and unless developers are skilled enough to intuitively identify and trace performance issues with their own homegrown processes, they will need help. AutomatedQA, a company that has been a staple name in the professional developer community for nearly five years, has come to the rescue with the latest release of their flagship measurement tool, AQtime 4.1.
AQtime is a performance and memory profiler that monitors code performance. It can track how much time is spent in each function of an application and how many times those functions are called, thereby giving you an idea of where performance bottlenecks occur. It also monitors the allocation and de-allocation of memory and reports on memory leaks.
A Captivated Reviewer
AQtime has matured into a solid profiling tool, and version 4.1 now sports a slick new interface optimized for the profiling experience. Professional flair peppers the UI, from the Project Assistant window pane to the Office XP-style menus and toolbars whose placement and contents can now be saved for later recall. The ability to filter results has been overhauled, allowing greater customization and on-the-fly analysis. Appearances may be skin deep, but in the case of AQtime, the interface masks the complexity of the product. In fact, developers new to the profiling process will need to spend a few hours with the samples to cultivate enough confidence to use the tool on their own projects.
Figure 1: The standalone AQtime application neatly organizes all the configuration settings and profile statistics in a polished, easy-to-use package.
Although the product is written in and can fully service any executable, DLL, OCX, or BPL created using languages ranging from C# to Delphi, it has greatly expanded its capabilities to service the universe of Win32 and .NET applications.
More than a Stopwatch
In addition to the excellent standalone host, the entire product can also live within the Visual Studio.NET IDE via Microsoft s VS.NET Add-In interface. After developers become proficient in navigating the interface of the standalone application, using the tool within the VS.NET environment feels natural and intuitive. Besides the cohabitation within VS.NET, the real reason for its presence is AQtime s ability to profile and debug CLR (i.e., managed code) applications written in C#, VB.NET, or any other fully compliant CLR language. Developers in the process of bridging the gap between the worlds of unmanaged and managed code with projects using a mixture of components from both worlds will be pleased to know that those very different approaches make no difference to AQtime s profiling capabilities. One of the 10 tutorials included with the product demonstrates how AQtime can analyze a mixed code project; it worked as advertised in several of my own code jambalayas.
The number of enhancements and new features added to the product is staggering. In addition to the VS.NET integration, including the ability to fully test .NET-compiled IIS applications, the memory profiling has been enhanced via the Allocation profiler. Although memory leaks are supposed to be a thing of the past with CLR applications, many CLR applications still rely on Win32 objects to operate, exposing an area of potential leakage. Allocation reports identify every aspect of object instantiation and manipulation, greatly assisting in the identification of OOP hotspots. COM, CLR, and Windows logical threads can be individually profiled via the Coverage profiler.
Figure 2: AQtime is now able to co-exist within the Visual Studio.NET IDE and is capable of profiling both managed and unmanaged code.
Panels exist for the Assistant, Call Graph, Call Tree, Details, Disassembler, Event View, Explorer, Report, Setup, and Summary views. Each of these facilities provides detailed insight into the inner workings of a profiled application. Several profiles can be selected, including Allocation, Coverage, Performance, Platform Compliance, Static Analysis, and Exception Tracing. The Sequence Diagram Link even generates a Microsoft Word or Visio UML-style diagram of the links between routines, quickly identifying external program dependencies. This neat gem can even be used to quickly assess third-party application dependencies that might be under consideration for internal distribution purposes. One interesting fact of note is that every profiler in AQtime was created as an individual plug-in using the open API set designed by the company. This same API has been exposed to allow other third-party custom-developed extensions to the product.
AQtime provides application profiling and memory debugging for executables and DLLs created using both managed and unmanaged code sources. This latest release provides seamless integration within the Visual Studio.NET environment in addition to its standalone application. Because profilers are fast becoming one of the most important tools in a developer s tackle box, AQtime 4.1 is one of the best profilers available today for .NET developers on the Windows platform.
This latest version of AQtime has truly hit its stride, and is an amazing, comprehensive profiling package for any Win32 or .NET project. Serious developers assembling serious applications need a serious profiler, and AQtime unilaterally exceeds that requirement in all categories. From its lengthy list of must-have features to its multiple IDE and language support, AQtime is truly a polished product that, when used effectively, will polish the projects it profiles. Until another profiler can compete against AutomatedQA s latest release, they are in the pole position for winning a glut of industry and customer satisfaction awards. Excellent job, AutomatedQA!
Mike Riley is an advanced computing professional specializing in emerging technologies and new development trends. Readers may contact him at mailto:[email protected].
Web Site: http://www.automatedqa.com