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.