(转)运行跟踪格式化程序

运行跟踪格式化程序

原文:https://www.ibm.com/support/knowledgecenter/zh/SSYKE2_8.0.0/com.ibm.java.lnx.80.doc/diag/tools/trace_formatter.html

跟踪格式化程序是 Java™ 程序,它可将跟踪文件中的二进制跟踪点数据转换为可读格式。该格式化程序需要包含格式化模板的 TraceFormat.dat 和 J9TraceFormat.dat 文件。格式化程序生成包含有关 JVM 的头信息的文件,此 JVM 生成了二进制跟踪文件、为其生成跟踪点的线程列表和格式化的跟踪点及其时间戳记、线程标识、跟踪点标识和跟踪点数据。

要在二进制跟踪文件类型上使用跟踪格式化程序:
java com.ibm.jvm.TraceFormat <input_file>  [<output_file>] [options]

其中,<input_file> 是要格式化的二进制跟踪文件的名称,<output_file> 是输出文件的名称。

如果未指定输出文件,那么输出文件名为 <input_file>.fmt。

格式化跟踪所需的堆大小与跟踪文件中存在的线程数成正比。对于较多数量的线程,格式化程序可能会耗尽内存,生成错误 OutOfMemoryError。 在此情况下,请使用 -Xmx 选项增加堆大小。

可用选项

以下选项可用于跟踪格式化程序:
-datfile=<file1.dat>[,<file2.dat>]
以逗号分隔的跟踪格式化数据文件的列表。缺省情况下,使用以下文件:$JAVA_HOME/lib/J9TraceFormat.dat 和 $JAVA_HOME/lib/TraceFormat.dat
-format_time=yes|no
指定是否将时间戳记格式化为可人可读的格式。缺省值为 yes。
-help
显示用法信息。
-indent
增加每个入口跟踪点上的跟踪消息缩进,并减少每个出口跟踪点上的跟踪消息缩进。缺省为不增加消息缩进。
-summary
将摘要信息打印到屏幕而不生成输出文件。
-threads=<thread id>[,<thread id>]...
过滤输出以仅显示指定的线程标识。thread id 是线程标识,可指定为十进制或十六进制 (0x) 格式。可以指定任意数量的线程标识,以逗号分隔。
-timezone=+|-HH:MM
指定在格式化时间戳记时要应用的 UTC 偏移量(正或负小时和分钟数)。
-verbose
输出详细描述的警告和错误消息以及性能统计信息。
以下示例显示通过运行跟踪格式化程序命令产生的输出:
C:	est>java com.ibm.jvm.TraceFormat sample.trc
Writing formatted trace output to file sample.trc.fmt
Processing 0.4921875Mb of binary trace data
Completed processing of 6983 tracepoints with 0 warnings and 0 errors

格式化跟踪输出类似于以下摘录(为了显示关键方面的信息而被截断):
               Trace Summary

Service level:
        JRE 1.8.0 Windows 7 amd64-64 build  (pwa6480sr2-20150624_06(SR2))

JVM startup options:
-Xoptionsfile=c:uildpwa6480sr2-20150624sdkjreincompressedrefsoptions.default
....

Processor information:
        Arch family:         AMD64
        Processor Sub-type:  Opteron
        Num Processors:      8
        Word size:           64

Trace activation information::
        FORMAT=c:uildpwa6480sr2-20150624sdkjrelib;.
        MAXIMAL=all{level1}
        EXCEPTION=j9mm{gclogger}
        MAXIMAL=all{level2}
        output=sample

Trace file header:
        JVM start time: 08:58:35.527000000
        Generations:    1
        Pointer size:   8

Active threads
....
        0x000000000f155f00  Attach API wait loop
        0x000000000f18b200  Thread-1
        0x000000000f190200  Thread-3


                Trace Formatted Data 

Time (UTC)          Thread ID          Tracepoint ID Type   Tracepoint Data
08:58:35.527291919 *0x000000000f010500 j9trc.0       Event  Trace engine initialized for VM = 0x3ad4d0
08:58:35.527349836  0x000000000f010500 j9prt.0       Event  Trace engine initialized for module j9port
08:58:35.527354040  0x000000000f010500 j9thr.0       Event  Trace engine initialized for module j9thr
08:58:35.529409621 *0x000000000f01eb00 j9trc.5       Event  Thread started VMthread = 0xf01eb00, name = (unnamed thread), nativeID = 0x24a798
....
08:58:35.536134516  0x000000000f010500 j9vm.1        Entry >Create RAM class from ROM class 0x3cab680 in class loader 0x3042338
08:58:35.536136384  0x000000000f010500 j9vm.80       Event  ROM class 0x3cab680 is named java/lang/Object
08:58:35.536200373  0x000000000f010500 j9vm.2        Exit  <Created RAM class 0xf03ef00 from ROM class 0x3cab680

原文地址:https://www.cnblogs.com/liujiacai/p/7687733.html