The Performance Analyzer enables you to time and tune your applications, analyze why a program hangs or encounters deadlocks, view multithread interactions, and better understand your code. It gives a view of your program's run-time behavior you cannot get through debuggers and browsers.

The Dynamic Call Graph is a graphical view of the execution of the target program. It uses nodes and arcs to represent functions and calls.

The Call Nesting view shows the trace file as a vertical series of function calls and returns.

The Time Line view displays the sequence of nested function calls and returns. Time stamps determine the exact placement of an event along the time dimension on the vertical axis. This provides a direct and natural presentation of the chronological relationships of events. The Time Line window is similar to the Call Nesting view, but the distance between the successive events in the window are drawn in proportion to the actual time between the events as recorded in the trace file. Use this window to find where a deadlock occurred. Access violations, system exceptions, and other such program errors, are recorded in the trace file as "user events", as are any messages generated in the code by calls to the Performance Analyzer. These events are indicated by a black diamond in the diagram, and if there is sufficient space, the text associated will be drawn to the right of the events.

The Execution Density view shows trends of program execution by displaying the trace data chronologically from top to bottom as thin horizontal lines of various colors in different columns.