|
Update: August 27, 2008
Version 6.2: A new call graph visualization component in Profile Analyzer and Call Tree Analyzer. Code Analyzer now supports instruction-level binary editing.
What is Visual Performance Analyzer?
Visual Performance Analyzer (VPA) is an Eclipse-based performance visualization toolkit. It consists of five major components: Profile Analyzer, Code Analyzer, Pipeline Analyzer, Counter Analyzer, Trace Analyzer, and Control Flow 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.3.
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.
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 the Performance Debugging Tool for Cell Broadband Engine and 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.
For further information, please see the VPA User Guide.
|