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