Skip to main content

Software > Software Development >

OS/390 C/C++ Productivity Tools

Components

Performance Analyzer
You can use C/C++ Productivity Tools' Performance Analyzer on your workstation to graphically display and analyze a trace of the execution of your host OS/390 C/C++ application. Using this understanding of your program, you can tune your code for increased performance.

Analyzing the performance of your application with the Performance Analyzer is a two-stage process. First you use the host Performance Analyzer component included with C/C++ Productivity Tools to create a function-by-function trace of the execution of your host application. Then you make the trace data available to the workstation through a file transfer facility such as FTP or NFS. You then use the workstation Performance Analyzer to graphically display and analyze the execution trace file.

During the function tracing of your program, the host component of the Performance Analyzer collects and records all trace data including:

  • The functions that each function calls to identify who calls whom
  • A count of the number of times each function is called to indicate which functions are being called most frequently
  • The time spent to execute each function to identify costly or time consuming functions.

You can use the Performance Analyzer to:

  • Diagnose Program Abends: When performing a function trace, the Performance Analyzer provides a complete history of events leading up to the point where a program abends.
  • Trace Multithreaded Programs: After tracing a multithreaded program, you can examine the individual threads to identify their function usage and compare the execution of different threads.
  • Trace Multiple Processes: When your POSIX program uses the fork or spawn functions to create new processes, you can still view the events in the different processes because separate trace files are created for each process.

C/C++ Productivity Tools' Performance Analyzer allows you to display the information gathered in the trace file through several diagrams on your workstation. Each diagram presents a different view to give you an overall idea of how your program performs:

  • The Call Nesting diagram shows the execution of the program as a series of function calls and returns. All threads can be shown at once or you can select the threads to be shown.
  • The Dynamic Call graph is a two-dimensional graphical representation of your program's execution. It shows the relative importance (in terms of execution time) of program components, and the call hierarchy.
  • The Execution Density diagram shows trace data chronologically from top to bottom as horizontal lines of various colors in columns assigned to each traced function.
  • The Statistics diagram is a textual report of cumulative information about your program's execution. It provides summary and detailed statistics on execution time and events for each component type: function, class, and executable. In addition to time statistics, information about the number of calls is also provided.
  • The Time Line diagram shows function calls and returns in chronological order along a vertical line. A function call is represented by a short, horizontal line to the right, and a function return is represented by a short, horizontal line to the left. The horizontal lines are connected by vertical lines whose length is proportional to the amount of time that elapsed between the respective events.

Performance Analyzer helps you gain an understanding of your program's behavior. With this knowledge, you can not only tune your code for increased performance but also accomplish the following:

  • Show logic flow (useful for C++ constructors and destructors)
  • Identify potential functions to inline
  • Determine which functions of a DLL are being called
  • Track library calls
  • Verify built-in functions usage
  • Track function calls among threads
  • Track class interaction
  • Track module interaction
Technical details

Software Announcement Letter


Other components

Workstation Editor

Debugging Tools

Help System