| 1 | 
 Header for -agentlib:hprof (or -Xrunhprof) ASCII Output (JDK 5.0 JVMTI based) | 
 
 
 
 
 
 | 2 | 
  | 
 
 
 
 
 
 | 3 | 
 @(#)jvm.hprof.txt       1.5 06/01/28 | 
 
 
 
 
 
 | 4 | 
  | 
 
 
 
 
 
 | 5 | 
  Copyright (c) 2006 Sun Microsystems, Inc. All  Rights Reserved. | 
 
 
 
 
 
 | 6 | 
  | 
 
 
 
 
 
 | 7 | 
 WARNING!  This file format is under development, and is subject to | 
 
 
 
 
 
 | 8 | 
 change without notice. | 
 
 
 
 
 
 | 9 | 
  | 
 
 
 
 
 
 | 10 | 
 This file contains the following types of records: | 
 
 
 
 
 
 | 11 | 
  | 
 
 
 
 
 
 | 12 | 
 THREAD START | 
 
 
 
 
 
 | 13 | 
 THREAD END      mark the lifetime of Java threads | 
 
 
 
 
 
 | 14 | 
  | 
 
 
 
 
 
 | 15 | 
 TRACE           represents a Java stack trace.  Each trace consists | 
 
 
 
 
 
 | 16 | 
                 of a series of stack frames.  Other records refer to | 
 
 
 
 
 
 | 17 | 
                 TRACEs to identify (1) where object allocations have | 
 
 
 
 
 
 | 18 | 
                 taken place, (2) the frames in which GC roots were | 
 
 
 
 
 
 | 19 | 
                 found, and (3) frequently executed methods. | 
 
 
 
 
 
 | 20 | 
  | 
 
 
 
 
 
 | 21 | 
 HEAP DUMP       is a complete snapshot of all live objects in the Java | 
 
 
 
 
 
 | 22 | 
                 heap.  Following distinctions are made: | 
 
 
 
 
 
 | 23 | 
  | 
 
 
 
 
 
 | 24 | 
                 ROOT    root set as determined by GC | 
 
 
 
 
 
 | 25 | 
                 CLS     classes  | 
 
 
 
 
 
 | 26 | 
                 OBJ     instances | 
 
 
 
 
 
 | 27 | 
                 ARR     arrays | 
 
 
 
 
 
 | 28 | 
  | 
 
 
 
 
 
 | 29 | 
 SITES           is a sorted list of allocation sites.  This identifies | 
 
 
 
 
 
 | 30 | 
                 the most heavily allocated object types, and the TRACE | 
 
 
 
 
 
 | 31 | 
                 at which those allocations occurred. | 
 
 
 
 
 
 | 32 | 
  | 
 
 
 
 
 
 | 33 | 
 CPU SAMPLES     is a statistical profile of program execution.  The VM | 
 
 
 
 
 
 | 34 | 
                 periodically samples all running threads, and assigns | 
 
 
 
 
 
 | 35 | 
                 a quantum to active TRACEs in those threads.  Entries | 
 
 
 
 
 
 | 36 | 
                 in this record are TRACEs ranked by the percentage of | 
 
 
 
 
 
 | 37 | 
                 total quanta they consumed; top-ranked TRACEs are | 
 
 
 
 
 
 | 38 | 
                 typically hot spots in the program. | 
 
 
 
 
 
 | 39 | 
  | 
 
 
 
 
 
 | 40 | 
 CPU TIME        is a profile of program execution obtained by measuring | 
 
 
 
 
 
 | 41 | 
                 the time spent in individual methods (excluding the time | 
 
 
 
 
 
 | 42 | 
                 spent in callees), as well as by counting the number of | 
 
 
 
 
 
 | 43 | 
                 times each method is called. Entries in this record are | 
 
 
 
 
 
 | 44 | 
                 TRACEs ranked by the percentage of total CPU time. The | 
 
 
 
 
 
 | 45 | 
                 "count" field indicates the number of times each TRACE  | 
 
 
 
 
 
 | 46 | 
                 is invoked. | 
 
 
 
 
 
 | 47 | 
  | 
 
 
 
 
 
 | 48 | 
 MONITOR TIME    is a profile of monitor contention obtained by measuring | 
 
 
 
 
 
 | 49 | 
                 the time spent by a thread waiting to enter a monitor. | 
 
 
 
 
 
 | 50 | 
                 Entries in this record are TRACEs ranked by the percentage | 
 
 
 
 
 
 | 51 | 
                 of total monitor contention time and a brief description | 
 
 
 
 
 
 | 52 | 
                 of the monitor.  The "count" field indicates the number of  | 
 
 
 
 
 
 | 53 | 
                 times the monitor was contended at that TRACE. | 
 
 
 
 
 
 | 54 | 
  | 
 
 
 
 
 
 | 55 | 
 MONITOR DUMP    is a complete snapshot of all the monitors and threads in  | 
 
 
 
 
 
 | 56 | 
                 the System. | 
 
 
 
 
 
 | 57 | 
  | 
 
 
 
 
 
 | 58 | 
 HEAP DUMP, SITES, CPU SAMPLES|TIME and MONITOR DUMP|TIME records are generated  | 
 
 
 
 
 
 | 59 | 
 at program exit.  They can also be obtained during program execution by typing  | 
 
 
 
 
 
 | 60 | 
 Ctrl-\ (on Solaris) or by typing Ctrl-Break (on Win32). |