Man Page analyzer.1
NAME
analyzer - GUI interface for analyzing a program performance
experiment
SYNOPSIS
analyzer [ -j jdk-path ] [ -J jvm-options ] [ -u user-
directory ] [ -v ] [ experiment-list ]
analyzer -V
analyzer -h
OPTIONS
Option Meaning
-j jdk-path
Specify the path to the Java[tm] virtual machine
(JVM[tm] machine) for running the analyzer. The
default path is /usr/j2se.
-J jvm-options
Specify JVM machine options.
-u user-directory
Specify user directory. This is the directory
where the IDE stores preferences and configuration
information. It is mounted by default in the IDE.
-v Print version information and Java runtime argu-
ments before starting.
-V Print version information and exit.
-h Print usage information and exit.
DESCRIPTION
The Performance Analyzer is a graphical data analysis tool
that analyzes performance data collected by the Collector
using the collect command, the IDE, or the collector com-
mands in dbx. The Collector gathers performance information
to create an experiment during the execution of a process.
The Performance Analyzer reads in such experiments, analyzes
the data, and displays the data in tabular and graphical
displays. A command-line version of analyzer is available
as er_print.
To start the Performance Analyzer, type:
analyzer [ experiment-list ]
on the command line, or use the Explorer in the IDE to navi-
gate to an experiment and open it. experiment-list is a
blank-separated list of experiment names, experiment group
names, or both.
Multiple experiments or experiment groups can be specified
on the command line. You can also use the File menu in the
Analyzer window to add experiments or experiment groups. To
open experiments recorded on descendant processes, you must
type the file name in the Open Experiment dialog box (or Add
Experiment dialog box) because the file chooser does not
permit you to open an experiment as a directory. You can
also construct an experiment group for the original process
and its descendants, as described in the collect(1) man
page. When the Analyzer displays multiple experiments, how-
ever they were loaded, data from all the experiments is
aggregated.
Analyzer Window
The Analyzer window has a menu bar, a tool bar, and a split
pane that contains tabs for the various displays. The left
pane contains tabs for the principal Analyzer displays.
These are the Functions tab, the Callers-Callees tab, the
Source tab, the Disassembly tab, the Timeline tab, the Leak-
list tab, the Statistics tab, and the Experiments tab. By
default, the Functions tab is displayed.
The right pane contains the Summary tab, the Event tab, and
the Legend tab. By default the Summary tab is displayed. The
other two tabs are dimmed unless the Timeline tab is
selected.
When a function or load object is selected, its name is
displayed in a text box in the menu bar.
The toolbar contains a Find tool that you can use to locate
text or highlighted lines in the Functions, Callers-Callees,
Source and Disassembly tabs (see Finding Text and Data,
below).
To configure the split pane, you can drag the splitter bar
to resize the panes, or click the zoom buttons (triangles)
in the splitter bar to expand a pane to full size or restore
it to the default size. The triangles point in the direction
the splitter bar moves when you click them. To select the
splitter bar from the keyboard, press F8. The arrow keys
move the splitter bar. Home moves the splitter bar all the
way to the left. End moves the splitter bar all the way to
the right.
To reorder the columns in any table, drag the column header
to the desired location. To sort the tables in the Functions
and Callers-Callees tabs by the contents of any column,
click the column header.
The rightmost entry on the Menu bar is a Help menu. You can
use it to display help on the analyzer, including a descrip-
tion of new features, a quick-reference guide, and lists of
keyboard shortcuts. In addition, the F1 key displays
context-dependent help for the selected tab.
The Functions Tab
The Functions tab shows a list consisting of functions
and their metrics. The metrics are derived from the
data collected in the experiment. Metrics can be
either exclusive or inclusive. Exclusive metrics
represent usage within the function itself. Inclusive
metrics represent usage within the function and all the
functions it called. The list of available metrics for
each kind of data collected is given in the collect(1)
man page. Only the functions that have non-zero
metrics are listed.
Time metrics are shown as seconds, presented to mil-
lisecond precision. Percentages are shown to a preci-
sion of 0.1 %. If a metric value is precisely zero,
its time and percentage is shown as "0." If the value
is not exactly zero, but is smaller than the precision,
its value is shown as "0.000" and its percentage as
"0.0". Count metrics are shown as an integer count.
The metrics initially shown are based on the data col-
lected and on the default settings read from various
.rc files (See DEFAULTS, below). For clock-based pro-
filing, the default set consists of inclusive and
exclusive User CPU time. For synchronization delay
tracing, the default set consists of inclusive syn-
chronization wait count and inclusive synchronization
time. For hardware counter overflow profiling, the
default set consists of inclusive and exclusive times
(for counters that count in cycles) or event counts
(for other counters). For heap tracing, the default
set consists of heap allocations and bytes allocated.
If more than one type of data has been collected, the
default metrics for each type are shown.
The metrics that are shown can be changed using the Set
Data Presentation dialog box.
To reorder the columns of metrics, drag the column
header to the place you want it to appear.
To select the sort metric, click the appropriate column
header. The metric name for the sort metric is
displayed in bold face, and a triangle graphic is
displayed in the header.
To search for a function, use the Find tool in the
toolbar.
The Callers-Callees Tab
The Callers-Callees tab shows the selected function in
a pane in the center, with callers of that function in
a pane above, and callees of that function in a pane
below.
In addition to showing exclusive and inclusive metric
values for each function, it also shows attributed
metrics. For the selected function, the attributed
metric represents the exclusive metric for that func-
tion. For the callees, it represents the portion of the
callee's inclusive metric that is attributable to calls
from the center function. The sum of attributed
metrics for the callees and the selected function
should add up to the inclusive metric for the selected
function. For the callers, the attributed metrics
represent the portion of the selected function's
inclusive metric that is attributable to calls from the
callers. The sum of the attributed metrics for all
callers should also add up to the inclusive metric for
the selected function.
The metrics shown in the Callers-Callees tab are chosen
in the Set Data Presentation dialog box. If either an
inclusive or an exclusive metric is chosen, the
corresponding attributed metric is shown in the
Callers-Callees tab.
To reorder the columns of metrics, drag the column
header to the place you want it to appear.
To select the sort metric, click the appropriate column
header. The metric name for the sort metric is
displayed in bold face, and a triangle graphic is
displayed in the header. Attributed metrics can only be
used for sorting in the Callers-Callees tab.
To search for a function, use the Find tool in the
toolbar.
Selecting a different function in any tab updates the
Callers-Callees tab to center it on the selected func-
tion.
The Source Tab
The Source tab shows the file containing the source
code of the selected function, if available, annotated
with performance metrics for each source line. The full
names of the source file, the corresponding object file
and the load object are given in the column heading for
the source code. In the rare case where the same
source file is used to compile more than one object
file, the Source tab shows the performance data for the
object file containing the selected function.
The Analyzer looks for the file containing the selected
function under the absolute pathname as recorded in the
executable. If it is not there, it tries to find a
file of the same basename in the current working direc-
tory. If you have moved the sources, or the experiment
was recorded in a different file system, you can put a
symbolic link from the current directory to the real
source location in order to see the annotated source.
The source code is interleaved with any compiler com-
mentary that has been selected for display. The classes
of commentary shown can be set in the Set Data Presen-
tation dialog box. The default classes can be set in a
defaults file (see DEFAULTS, below).
The metrics displayed in the Source tab are chosen in
the Set Data Presentation dialog box.
Lines with metrics that are equal to or exceed a thres-
hold percentage of the maximum of that metric for any
line in the source file are highlighted, to make it
easier to find the important lines. The threshold can
be set in the Set Data Presentation dialog box. The
default threshold can be set in a defaults file (see
DEFAULTS, below).
To search for text and for highlighted lines, use the
Find tool in the toolbar (see Finding Text and Data,
below).
To reorder the columns of metrics, drag the column
header to the place you want it to appear.
The Disassembly Tab
The Disassembly tab shows a disassembly listing of the
object file containing the selected function, annotated
with performance metrics for each instruction.
The disassembly listing has the source, if available,
and any compiler commentary chosen for display inter-
leaved within it. The same algorithm that is used in
the Source tab to find the source file is used in the
Disassembly tab. The classes of commentary shown can
be set in the Set Data Presentation dialog box. The
default classes can be set in a defaults file (see
DEFAULTS, below).
Lines with metrics that are equal to or exceed a thres-
hold percentage of the maximum of that metric for any
line in the object file are highlighted, to make it
easier to find the important lines. The threshold can
be set in the Set Data Presentation dialog box. The
default threshold can be set in a defaults file (see
DEFAULTS, below).
To search for text and for highlighted lines, use the
Find tool in the toolbar (see Finding Text and Data,
below).
To reorder the columns of metrics, drag the column
header to the place you want it to appear.
The Timeline Tab
The Timeline tab shows a chart of the events and the
sample points recorded by the Collector as a function
of time. Data is displayed in horizontal bars. For each
experiment there is a bar for sample data and a set of
bars for each LWP. The set for an LWP consists of one
bar for each data type recorded: clock-based profiling,
hardware counter profiling, synchronization tracing,
heap tracing and MPI tracing.
The bars that contain sample data show a color-coded
representation of the time spent in each microstate for
each sample. Samples are displayed as a period of time
because the data in a sample point represents time
spent between that point and the previous point. Click-
ing a sample displays the data for that sample in the
Event tab.
The profiling data or tracing data bars show an event
marker for each event recorded. The event markers con-
sist of a color-coded representation of part of the
call stack starting from the leaf function, which is
shown at the top of the marker. Clicking a colored
rectangle in an event marker selects the corresponding
function and displays the data for that event and that
function in the Event tab. The selected function is
highlighted in both the Event tab and the Legend tab.
You can change the color that is mapped to the selected
function using the color chooser in the Timeline menu.
You can also open the color chooser by double-clicking
a color box in the Legend tab.
The toolbar and the Timeline menu have controls for
stepping horizontally between events and vertically
between bars, for zooming in and out on the time axis
and for resetting the display to full width. You can
also zoom in by dragging over a region. The data types
and the number of levels of the call stack that are
displayed can be changed using the Options item in the
Timeline menu.
LWPs and experiments are shown or hidden using the
Filter Data dialog box.
The Leaklist Tab
The LeakList tab shows a list of all the leaks and
allocations that occurred in the program. Each leak
entry includes the number of bytes leaked and the call
stack for the allocation. Each allocation entry
includes the number of bytes allocated and the call
stack for the allocation.
The Statistics Tab
The Statistics tab shows totals for various system
statistics summed over the selected experiments and
samples followed by the statistics for the selected
samples of each experiment. For information on the
statistics presented, see the getrusage(3C) and proc(4)
man pages.
The Experiments Tab
The Experiments tab is divided into two panels. The top
panel contains a tree that shows information on the
experiments collected and on the load objects accessed
by the collection target. The information includes any
error messages or warning messages generated during the
processing of the experiment or the load objects. The
bottom panel lists error and warning messages from the
analyzer session.
The Summary Tab
The Summary tab shows all the recorded metrics for the
selected function or load object, both as values and
percentages, and information on the selected function
or load object. The Summary tab is updated whenever a
new function or load object is selected in any tab.
The Event Tab
The Event tab shows detailed data for the event that is
selected in the Timeline tab, including the event type,
leaf function, LWP, thread and CPU IDs. Below the data
panel the call stack is displayed with the color coding
for each function in the stack. Clicking a function in
the call stack makes it the selected function.
When a sample is selected in the Timeline tab, the
Event tab shows the sample number, the start and end
time of the sample, and the microstates with the amount
of time spent in each microstate and the color coding.
This tab is only available when the Timeline tab is
selected in the left pane.
The Legend Tab
The Legend tab shows a legend for the mapping of colors
to functions and to microstates in the Timeline tab.
This tab is only available when the Timeline tab is
selected in the left pane. You can change the color
that is mapped to an item by selecting the item in the
legend and selecting the color chooser from the Time-
line menu, or by double-clicking the color box.
Selecting the Data Presentation Options
You can control the presentation of data from the Set Data
Presentation dialog box. To open this dialog box, click on
the Set Data Presentation button in the toolbar or choose
Set Data Presentation from the View menu. The Set Data
Presentation dialog box has a tabbed pane with four tabs.
The Metrics Visible tab shows all of the available metrics.
Each metric has check boxes in one or more of the columns
labeled Time, Value and %, depending on the type of metric.
The Sort tab shows the order of the metrics presented, and
the choice of metric to sort by. The Source and Disassembly
tab presents a list of checkboxes that you can use to select
the compiler commentary that is shown in the source listing
and the disassembly listing, the threshold for highlighting
important lines in the source listing and the disassembly
listing, whether to interleave source code in the disassem-
bly listing, whether to include metrics on the source lines
in the disassembly listing, and whether to display instruc-
tions in hexadecimal in the disassembly listing. The For-
mats tab presents a choice for the long form or the short
form of C++ function names.
The Set Data Presentation dialog box has a Save button with
which you can store the current settings.
Finding Text and Data
The analyzer has a Find tool in the toolbar, with two
options for search targets that are given in a combo box.
You can search for text in the Name column of the Functions
or Callers-Callees tabs and in the code column of the Source
and Disassembly tabs. You can search for a high-metric item
in the Source and Disassembly tabs. The metric values on the
lines containing high-metric items are highlighted in green.
Use the arrow buttons next to the Find field to search up or
down.
Showing or Hiding Functions
By default, all functions in each load object are shown in
the Functions and Callers-Callees tabs. You can hide all the
functions in a load object using the Show/Hide Functions
dialog box, which can be opened from the toolbar or the View
menu. When the functions in a load object are hidden, the
Functions and Callers-Callees tabs show a single entry
representing the aggregate of all functions from the load
object.
In contrast to filtering, metrics corresponding to hidden
functions are still represented in some form in all
displays.
Filtering Data: Experiment, Sample, Thread, and LWP Selection
By default, data is shown in each tab for all experiments,
all samples, all threads and all LWPs. A subset of data can
be selected using the Filter Data dialog box, which you open
by clicking the Filter Data button in the toolbar or choos-
ing Filter Data from the View menu.
The Filter Data dialog box consists of an Experiment list
and sections for samples, LWPs and threads, each with a text
field used to enter a selection. You can select one or more
experiments from the Experiment list by clicking on the
experiments or using Select All, Clear All, or Reverse but-
tons. You can then use the text boxes to change what data is
displayed for those experiments. All three filters can be
applied simultaneously, although you should take care when
you interpret data that is filtered by both threads and
LWPs. You can also use the Enable All, Enable Selected, Dis-
able All, and Disable Selected buttons to enable or disable
data display for experiments. Filtering by thread and by
sample does not apply to the data in the Timeline tab.
Experiment Selection
When more than one experiment has been loaded, either
by naming them individually, or by naming an experiment
group, the Analyzer allows filtering by experiment.
Sample Selection
Samples are numbered from 1 to N, and any set of sam-
ples can be selected. The selection consists of a
comma-separated list of sample numbers or ranges such
as 1-5.
Thread Selection
Threads are numbered from 1 to N, and any set of
threads can be selected. The selection consists of a
comma-separated list of thread numbers or ranges. Pro-
file data for threads only covers that part of the run
where the thread was actually scheduled on an LWP.
LWP Selection
LWPs are numbered from 1 to N, and any set of LWPs can
be selected. The selection consists of a comma-
separated list of LWP numbers or ranges. If synchroni-
zation data is recorded, the LWP reported is the LWP at
entry to a synchronization event, which might be dif-
ferent from the LWP at exit from the synchronization
event.
Generating Mapfiles and Function Reordering
In addition to analyzing the data, the Analyzer also pro-
vides a function reordering capability. Based on the data
in an experiment, the Analyzer can generate a mapfile which,
when used with the static linker (ld) to relink the applica-
tion, creates an executable with a smaller working set size,
better I-cache behavior, or both.
The order of the functions that is recorded in the mapfile
and used to reorder the functions in the executable is
determined by the metric that is used for sorting the func-
tion list. Exclusive User CPU time or Exclusive CPU Cycle
time are normally used for producing a mapfile. Some
metrics, such as those from synchronization delay or heap
tracing, or name or address do not produce meaningful order-
ings for a mapfile.
Other Capabilities
The Analyzer also provides in the File menu the ability to
add experiments or experiment groups to the current set, or
to drop experiments from the set.
DEFAULTS
analyzer processes directives from an .er.rc file in the
current directory, if present; from a .er.rc file in the
user's home directory, if present; and from a system-wide
er.rc file. These files can contain default settings for
metrics, sorting, and for specifying compiler commentary
options and highlighting thresholds for source and disassem-
bly output. They can also specify a path for C++ name
demangling for other compilers. See the description of
these directives and files, and their processing, in the
er_print(1) man page.
COMPATIBILITY
analyzer does not work on experiments recorded with earlier
versions of the tools. If invoked on such experiments, a
warning is displayed. Use the version of analyzer from the
release with which the experiment was recorded.
SEE ALSO
collect(1), collector(1), dbx(1), er_archive(1), er_cp(1),
er_export(1), er_mv(1), er_print(1), er_rm(1), er_src(1),
libcollector(3), and
Program Performance Analysis Tools.