## Command Line Comparison Executable |

| The command line comparison executable can be used to generate comparisons from a number of saved snapshot. For more information please consult the overview.

| The comparison executable is named `jpcompare.exe` on Windows and `jpcompare` on Unix-based operating systems and is located in the `bin` directory of a JProfiler installation. If you execute it with the -help option, you will get help on the available comparison names and comparison options:
      Usage: jpcompare "snapshot file"[,"snapshot file",...] [global options]
                    "comparison name" [options] "output file"
                    "comparison name" [options] "output file" ...

      where "snapshot file" is a snapshot file with a .jps extension
            [global options] is a list of options in the format -option=value
            "comparison name" is one of the comparison names listed below
            [options] is a list of options in the format -option=value
            "output file" is the output file for the export

      Global options:
          -outputdir=[output directory]
              Base directory to be used when the output file for a comparison is a
              relative file.
          -ignoreerrors=true|false
              Ignore errors that occur when options for a comparison cannot be set
              and continue with the next comparison. The default value is "false",
              i.e. the export is terminated, when the first error occurs.
          -sortbytime=false|true
              Sort the specified snapshot files by modification time. The default
              value is false.
          -listfile=[filename]
              Read a file that contains the paths of the snapshot files, one
              snapshot file per line.

      Available comparison names and options:
      * Objects
        options:
          -format=html|csv
              Determines the output format of the exported file. If not present, the
              export format will be determined from the extension of the output
              file.
          -viewfilters=[comma-separated list]
              Sets view filters for the export. If you set view filters, only the
              specified packages and their sub-packages will be displayed by the
              exported view.
          -objects=all|recorded|heapwalker
              Compare all objects (JVMTI only) or recorded objects, or objects in
              the heap walker. The default is all objects for .jps files and
              heapwalker for HPROF files.
          -liveness=live|gc|all
              Selects the liveness mode for the export, i.e. whether to display live
              objects, garbage collected objects or both. The default value is live
              objects.
          -aggregation=class|package|component
              Selects the aggregation level for the export. The default value is
              classes.

      * AllocationHotSpots
        options:
          -format=html|csv
              Determines the output format of the exported file. If not present, the
              export format will be determined from the extension of the output
              file.
          -viewfilters=[comma-separated list]
              Sets view filters for the export. If you set view filters, only the
              specified packages and their sub-packages will be displayed by the
              exported view.
          -classselection
              Calculate the comparison for a specific class or package. Specify a
              package with a wildcard, like 'java.awt.*'.
          -liveness=live|gc|all
              Selects the liveness mode for the export, i.e. whether to display live
              objects, garbage collected objects or both. The default value is live
              objects.
          -aggregation=method|class|package|component
              Selects the aggregation level for the export. The default value is
              methods.
          -filteredclasses=separately|addtocalling
              Selects if filtered classes should be shown separately or be added to
              the calling class. The default value is to show filtered classes
              separately.

      * AllocationTree
        options:
          -format=html|xml
              Determines the output format of the exported file. If not present, the
              export format will be determined from the extension of the output
              file.
          -viewfilters=[comma-separated list]
              Sets view filters for the export. If you set view filters, only the
              specified packages and their sub-packages will be displayed by the
              exported view.
          -classselection
              Calculate the comparison for a specific class or package. Specify a
              package with a wildcard, like 'java.awt.*'.
          -liveness=live|gc|all
              Selects the liveness mode for the export, i.e. whether to display live
              objects, garbage collected objects or both. The default value is live
              objects.

      * HotSpots
        options:
          -format=html|csv
              Determines the output format of the exported file. If not present, the
              export format will be determined from the extension of the output
              file.
          -viewfilters=[comma-separated list]
              Sets view filters for the export. If you set view filters, only the
              specified packages and their sub-packages will be displayed by the
              exported view.
          -firstthreadselection
              Calculate the comparison for a specific thread or thread group.
              Specify thread groups like 'group.*' and threads in specific thread
              groups like 'group.thread'. Escape dots in thread names with
              backslashes.
          -secondthreadselection
              Calculate the comparison for a specific thread or thread group. Only
              available if 'firstthreadselection' is set. If empty, the same value
              as for 'firstthreadselection' will be used. Specify thread groups like
              'group.*' and threads in specific thread groups like 'group.thread'.
              Escape dots in thread names with backslashes.
          -threadstatus=all|running|waiting|blocking|netio
              Selects the thread status for the export. The default value is the
              runnable state.
          -aggregation=method|class|package|component
              Selects the aggregation level for the export. The default value is
              methods.
          -differencecalculation=total|average
              Selects the difference calculation method for call times. The default
              value is total times.
          -hotspottype=method|methodnofiltered|jdbc|jms|jndi|url
              Selects the hot spot type for the export. The default value is
              "method".

      * CallTree
        options:
          -format=html|xml
              Determines the output format of the exported file. If not present, the
              export format will be determined from the extension of the output
              file.
          -viewfilters=[comma-separated list]
              Sets view filters for the export. If you set view filters, only the
              specified packages and their sub-packages will be displayed by the
              exported view.
          -firstthreadselection
              Calculate the comparison for a specific thread or thread group.
              Specify thread groups like 'group.*' and threads in specific thread
              groups like 'group.thread'. Escape dots in thread names with
              backslashes.
          -secondthreadselection
              Calculate the comparison for a specific thread or thread group. Only
              available if 'firstthreadselection' is set. If empty, the same value
              as for 'firstthreadselection' will be used. Specify thread groups like
              'group.*' and threads in specific thread groups like 'group.thread'.
              Escape dots in thread names with backslashes.
          -threadstatus=all|running|waiting|blocking|netio
              Selects the thread status for the export. The default value is the
              runnable state.
          -aggregation=method|class|package|component
              Selects the aggregation level for the export. The default value is
              methods.
          -differencecalculation=total|average
              Selects the difference calculation method for call times. The default
              value is total times.

      * TelemetryHeap
        options:
          -format=html|csv
              Determines the output format of the exported file. If not present, the
              export format will be determined from the extension of the output
              file.
          -minwidth=[number of pixels]
              Minimum width of the graph window in pixels. The default value is 800.
          -minheight=[number of pixels]
              Minimum height of the graph window in pixels. The default value is
              600.
          -valuetype=current|maximum|bookmark
              Type of the value that is calculated for each snapshot. Default is the
              current value.
          -bookmarkname
              If valuetype is set to 'bookmark', the name of the bookmark for which
              the value should be calculated.
          -measurements=maximum,free,used
              Measurements that are shown in the comparison graph. Concatenate
              multiple values with commas. The default value is 'used'.
          -memorytype=heap|nonheap
              Type of the memory that should be analyzed. Default is 'heap'.
          -memorypool
              If a special memory pool should be analyzed, its name can be specified
              with this parameter. The default is empty, i.e. no special memory
              pool.

      * TelemetryObjects
        options:
          -format=html|csv
              Determines the output format of the exported file. If not present, the
              export format will be determined from the extension of the output
              file.
          -minwidth=[number of pixels]
              Minimum width of the graph window in pixels. The default value is 800.
          -minheight=[number of pixels]
              Minimum height of the graph window in pixels. The default value is
              600.
          -valuetype=current|maximum|bookmark
              Type of the value that is calculated for each snapshot. Default is the
              current value.
          -bookmarkname
              If valuetype is set to 'bookmark', the name of the bookmark for which
              the value should be calculated.
          -measurements=total,nonarrays,arrays
              Measurements that are shown in the comparison graph. Concatenate
              multiple values with commas. The default value is 'total'.

      * TelemetryClasses
        options:
          -format=html|csv
              Determines the output format of the exported file. If not present, the
              export format will be determined from the extension of the output
              file.
          -minwidth=[number of pixels]
              Minimum width of the graph window in pixels. The default value is 800.
          -minheight=[number of pixels]
              Minimum height of the graph window in pixels. The default value is
              600.
          -valuetype=current|maximum|bookmark
              Type of the value that is calculated for each snapshot. Default is the
              current value.
          -bookmarkname
              If valuetype is set to 'bookmark', the name of the bookmark for which
              the value should be calculated.
          -measurements=total,filtered,unfiltered
              Measurements that are shown in the comparison graph. Concatenate
              multiple values with commas. The default value is 'total'.

      * TelemetryThreads
        options:
          -format=html|csv
              Determines the output format of the exported file. If not present, the
              export format will be determined from the extension of the output
              file.
          -minwidth=[number of pixels]
              Minimum width of the graph window in pixels. The default value is 800.
          -minheight=[number of pixels]
              Minimum height of the graph window in pixels. The default value is
              600.
          -valuetype=current|maximum|bookmark
              Type of the value that is calculated for each snapshot. Default is the
              current value.
          -bookmarkname
              If valuetype is set to 'bookmark', the name of the bookmark for which
              the value should be calculated.
          -measurements=total,runnable,waiting,netio,waiting
              Measurements that are shown in the comparison graph. Concatenate
              multiple values with commas. The default value is 'total'.

| Examples of using the comparison executable are:
      jpcompare test1.jps,test2.jps,test3.jps TelemetryHeap heap.html

      jpcompare test1.jps,test2.jps -sortbytime Objects -objects=recorded -aggregation=package objects.html

      jpcompare -listfile=snapshots.txt -ignoreerrors=true -outputdir=/tmp/export
                Objects objects.csv
                AllocationTree -class=java.lang.String allocations.xml