| 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). |