Skip to main content

Visual Performance Analyzer

An Eclipse-based visual performance toolkit.

Date Posted: September 14, 2006

alphaworks tab navigation


 

Update: November 27, 2009 6.4.1: Trace Analyzer supports visualization of the AIX trace, and the output collected with SAR, tcpdump on Linux. Supports output of latest Performance Inspector JProf. Updates to Profile Analyzer,Call Tree Analyzer, Code Analyzer and Trace Analyzer.

 

What is Visual Performance Analyzer?

Visual Performance Analyzer (VPA) is an Eclipse-based performance visualization toolkit. It consists of six major components: Profile Analyzer, Code Analyzer, Pipeline Analyzer, Counter Analyzer, Trace Analyzer, and Call Tree Analyzer.

Profile Analyzer provides a powerful set of graphical and text-based views that allow users to narrow down performance problems to a particular process, thread, module, symbol, offset, instruction, or source line. Profile Analyzer supports time-based system profiles (Tprofs) collected from a number of IBM® platforms and the Linux® profile tool OProfile 0.9.4.

Code Analyzer examines executable files and displays detailed information about functions, basic blocks, and assembly instructions. It is built on top of FDPR-Pro (Feedback Directed Program Restructuring) technology and allows adding of FDPR-Pro and Tprof profile information. (The Linux version of FDPR-Pro is available here at alphaWorks.) Code Analyzer is able to show statistics; navigate disassembled instructions; and display performance comments, instruction grouping information, and map instructions back to source code.

Pipeline Analyzer is a port of the IBM Performance Simulator for Linux on POWER™, another alphaWorks technology. Pipeline joins the VPA toolkit to provide VPA users with the means of examining how code is executed on various IBM POWER processors. Pipeline Analyzer displays the pipeline execution of instruction traces generated by a POWER series processor. It does so by providing a scroll view and a resource view of the instruction execution.

Counter Analyzer accepts hardware performance data from collection tools such as CPC or HPMCOUNT. The data is provided as XML and is parsed by this plug-in in order to allow visualizing and analysis through CPI breakdown models. The data can be saved in the embedded database for later viewing, or it can be exported to a CSV file for inclusion in a spreadsheet.

Trace Analyzer visualizes Cell Broadband Engine™ traces containing information such as DMA communication, locking and unlocking activities, mailbox messages, etc. Trace Analyzer shows this data organized by core along a common timeline. Extra details are available for each kind of event: for example, lock identifier for lock operations, accessed address for DMA transfers, etc. Trace Analyzer can also visualize the AIX traces, and the output collected with SAR and tcpdump on Linux.

Call Tree Analyzer is a tool that analyzes call trace data collected by tools such as Jprof, which is part of Performance Inspector. The call trace data contains information about each method call, such as how much time is spent in every invocation and who calls whom. Control Flow Analyzer provides two major ways of visualizing the call trace data: a graph of the execution flow and and a set of tables displaying the calling tree.

This toolkit runs on Windows®, AIX®, and Linux (see Requirements section for details).

How does it work?

Profile Analyzer parses system profiles into an internal profiling data model that supports the profile hierarchy, offset locations, tick counts, CPU counter data, source line information, and disassembly. The plug-in then displays this data model, using various Eclipse views. The system profiles are those produced by Performance Inspector, AIX Tprof, and Linux oprofile. However, Visual Performance Analyzer can be extended to support almost any platform by converting a system profile to an XML schema that it understands.

CodeAnalyzer is able to read profiling information generated by AIX Tprof or FDPR-Pro performance tools. It reads in executable files and shared libraries and analyzes them using FDPR-Pro. FDPR-Pro is a post-link analyzer and performance optimization tool that can perform accurate static and dynamic analysis of executable files.

Pipeline Analyzer reads the .pipe and .config input files that are produced by the IBM Performance Simulator for Linux on POWER. An instruction trace is first collected and analyzed by a processor model. The two output files are produced for viewing with either the Performance Simulator or Visual Performance Analyzer.

Counter Analyzer reads the XML output from hardware data collection tools. The XML is parsed and then displayed or graphed for viewing. If a CPI breakdown model is available, the data can be broken down into individual components and viewed in the CPI tab. The CPI breakdown allows the user to view where the workload is spending its processing cycles.

Trace Analyzer reads the trace files generated by a set of tools, including the Performance Debugging Tool for Cell Broadband Engine, AIX tracing facility, Linux SAR and tcpdump, then displays time-based graphical visualization of the program execution, as well as a list of trace contents and the event details for selection.

Call Tree Analyzer reads call trace data files and displays execution flow graphs and call tree tables in order to help users analyze when and where method invocations happen and how long they run.

What's new in Version 6.4.1?

Trace Analyzer can visualize AIX traces and output files generated by Linux SAR and tcpdump. Call Tree Analyzer support output of latest Performance Inspector JProf. Profile Analyzer can display the temporal profiling information based on the output of Performance Inspector tprof.

For further information, please see the VPA User Guide.

About the technology author(s)

Visual Performance Analyzer was developed by several IBM teams. Profile Analyzer was developed by the IBM Toronto JIT compiler development team and the China System & Technology Lab. The Code Analyzer and Trace Analyzer components were added by the performance analysis and optimization technology team at the IBM Haifa Research Lab. The Pipeline Analyzer component was developed by the IBM Austin Hardware Performance Team and the China System & Technology Lab. The Counter Analyzer and Call Tree Analyzer components were developed by the IBM China System & Technology Lab.

Trademarks