| Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. |
| |
| Redistribution and use in source and binary forms, with or without |
| modification, are permitted provided that the following conditions |
| are met: |
| |
| - Redistributions of source code must retain the above copyright |
| notice, this list of conditions and the following disclaimer. |
| |
| - Redistributions in binary form must reproduce the above copyright |
| notice, this list of conditions and the following disclaimer in the |
| documentation and/or other materials provided with the distribution. |
| |
| - Neither the name of Oracle nor the names of its |
| contributors may be used to endorse or promote products derived |
| from this software without specific prior written permission. |
| |
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS |
| IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
| THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
| CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
| LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| |
| Header for -agentlib:hprof (or -Xrunhprof) ASCII Output (JDK 5.0 JVMTI based) |
| |
| WARNING! This file format is under development, and is subject to |
| change without notice. |
| |
| This file contains the following types of records: |
| |
| THREAD START |
| THREAD END mark the lifetime of Java threads |
| |
| TRACE represents a Java stack trace. Each trace consists |
| of a series of stack frames. Other records refer to |
| TRACEs to identify (1) where object allocations have |
| taken place, (2) the frames in which GC roots were |
| found, and (3) frequently executed methods. |
| |
| HEAP DUMP is a complete snapshot of all live objects in the Java |
| heap. Following distinctions are made: |
| |
| ROOT root set as determined by GC |
| CLS classes |
| OBJ instances |
| ARR arrays |
| |
| SITES is a sorted list of allocation sites. This identifies |
| the most heavily allocated object types, and the TRACE |
| at which those allocations occurred. |
| |
| CPU SAMPLES is a statistical profile of program execution. The VM |
| periodically samples all running threads, and assigns |
| a quantum to active TRACEs in those threads. Entries |
| in this record are TRACEs ranked by the percentage of |
| total quanta they consumed; top-ranked TRACEs are |
| typically hot spots in the program. |
| |
| CPU TIME is a profile of program execution obtained by measuring |
| the time spent in individual methods (excluding the time |
| spent in callees), as well as by counting the number of |
| times each method is called. Entries in this record are |
| TRACEs ranked by the percentage of total CPU time. The |
| "count" field indicates the number of times each TRACE |
| is invoked. |
| |
| MONITOR TIME is a profile of monitor contention obtained by measuring |
| the time spent by a thread waiting to enter a monitor. |
| Entries in this record are TRACEs ranked by the percentage |
| of total monitor contention time and a brief description |
| of the monitor. The "count" field indicates the number of |
| times the monitor was contended at that TRACE. |
| |
| MONITOR DUMP is a complete snapshot of all the monitors and threads in |
| the System. |
| |
| HEAP DUMP, SITES, CPU SAMPLES|TIME and MONITOR DUMP|TIME records are generated |
| at program exit. They can also be obtained during program execution by typing |
| Ctrl-\ (on Solaris) or by typing Ctrl-Break (on Win32). |