About Profiling .NET Managed Code

Related Topics

You can use Quantify to profile the performance of .NET managed code programs, including managed C++ programs. You can run .NET managed code programs:

§          from Microsoft Visual Studio using the Quantify integration

§    from the Quantify standalone interface

§    from the command line

With Quantify's PowerTune options (click Settings in the Run Program dialog box), you can choose to collect performance data at line or function level. You can also limit instrumentation and profiling to selected classes.

Quantify uses debug line information to collect line-by-line performance data. If debug line information is not available for a module, Quantify collects data for the module at the function level. For a DLL, only data for exported functions is recorded. Time for internal, non-exported functions is attributed to the calling exported functions.

Debug symbol data must be available for Quantify to identify a function. If symbol data is not available, Quantify labels the function UnnamedFunction@<offset> or, in the case of some timed COM functions, UnnamedTimedFunction@<offset>.

You can use Quantify's data analysis windows and tools to analyze program performance. For example, while a program is running, you can monitor the status of its threads, or pause and resume data recording. After you exit the program, you can filter out non-critical functions and focus on the bottlenecks in your code.

Notes:

§      For .NET managed code programs, Quantify uses Byte Code Insertion (BCI) technology to dynamically instrument the files in memory as it profiles your code. Quantify does not save or store BCI instrumented files in its cache directory. Operations that relate to cache directories do not apply to managed code.

§      For .NET managed code, Quantify collects both line-level and function-level data by timing.

§      For information about the recommended settings for Visual Studio .NET, Visual Studio 2005, and Visual Studio 2008 click images\shortcut.gif

§      If you choose to time functions in an executable, the only data Quantify includes for the executable is the .exe's entry point. The entry point's function time includes the function time of the other functions in the .exe.

§      To ensure consistent results, instrument and run a program on the same machine.

(C) Copyright IBM Corporation 1993, 2009.