analyze.pl - a Perl script to reduce profile samples and
produce the profile output.
SYNOPSIS
analyze.pl program.map sample.out [-p pid,pid,pid,...] \
[-a] [-r proc,proc,proc...]
DESCRIPTION
analyze.pl takes the profile samples produced by pfmon and
the program.map file specified (and, if present, a Sys
tem.map file) and creates the analyzed profile. It is
typically called by profile.pl as part of the profiling
process, but it can also be called by itself, to analyze a
profile with a different set of options, for example.
analyze.pl is called as:
analyze.pl program.map sample.out
Here program.map is the map file for the measured program
(typically created using makemap.pl), and sample.out is
the file containing the pfmon profile samples. If pro
file.pl was able to use dplace to run your program, this
is normally sufficient.
If dplace is not available on your system (dplace is a
licensed product distributed as part of the ProPack for
the SGI Altix 3000), or was not used for this profile run
(the -no_dplace option was specified), you may addition
ally need to specify the process ID's of the program you
wish to be profiled. Use the "-p" option to do this.
See also the man page for profile.pl for further discus
sion.
The default is for analyze.pl to create a subroutine-level
profile; that is, the output will contain the number of
ticks found in each procedure of the program. analyze.pl
also can report on the individual ticks that occurred for
selected subroutines in the program. (However, see Bugs,
below.)
To get a summary of individual tick events per procedure,
use the "-r" and/or the "-a" options:
analyze.pl program.map sample.out -r
proc_name1,proc_name2,...
or analyze.pl program.map sample.out -a -r
proc_name1,proc_name2,...
The "-a" option causes the individual tick events to be
displayed in absolute addresses; the default is to display
the tick events in addresses relative to the start of the
bined and a histogram-like output is produced.
If there is a file System.map in the current directory,
analyze.pl uses this file to resolve kernel ticks and will
print a kernel profile as well. It is important that this
map file matches the kernel running when the profile was
taken, otherwise the results can be useless.
OPTIONS
-a report profile ticks as absolute addresses. When
one specifies the -r option, the default is to
report the individual profile ticks as addresses
relative to the start of the procedure. The -a
changes this to absolute addresses.
-p pid,pid,pid,...
Restrict the profile analysis to the specified pro
cess ids. Typically used when dplace is not avail
able or was not used.
-r proc,proc,proc,...
report individual profile ticks for the named pro
cedures. Note: the procedure name must be the one
found in the map file. Sometimes this is slightly
different from the procedure name used in the pro
gram itself. For example, in Fortran, a subroutine
named "FOO" appears in the map as "FOO_".
FILES
/usr/bin/pfmon
/usr/local/bin/profile.pl
/usr/local/bin/analyze.pl
/usr/local/bin/makemap.pl
BUGS
Since IA64 is a highly pipelined processor, the time
between when a PMU interrupt is asserted and the processor
finally recognizes the interrupt can be many instruction
times. Thus, do not assume that the address reported by
the -r option is precisely where the PMU overflow inter
rupt occurred. Nonetheless, in certain cases this data
can be useful. The user is responsible for figuring out
the location of the PMU event that caused the reported PMU
overflow interrupt.
SEE ALSO
pfmon, profile.pl, makemap.pl, dplace.
Man(1) output converted with
man2html