JAVA PROFILE 1.0.1, created Sun Dec 30 11:47:15 2001 Header for -Xhprof ASCII Output Copyright 1998 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved. 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). -------- THREAD START (obj=80e8168, id = 2, name="Signal dispatcher", group="system") THREAD START (obj=80ee758, id = 3, name="Reference Handler", group="system") THREAD START (obj=80f4b78, id = 4, name="Finalizer", group="system") THREAD START (obj=81401b0, id = 5, name="HPROF CPU profiler", group="system") THREAD START (obj=81727f0, id = 1, name="main", group="main") THREAD END (id = 1) THREAD START (obj=80bf5c8, id = 6, name="Thread-0", group="main") THREAD END (id = 6) TRACE 1: (thread=1) <empty> TRACE 22: (thread=1) java/lang/StringBuffer.append(StringBuffer.java:402) com/develop/demos/TestHprof.makeStringInline(TestHprof.java:23) com/develop/demos/TestHprof.main(TestHprof.java:57) TRACE 15: (thread=1) com/develop/demos/TestHprof.addToCat(TestHprof.java:17) com/develop/demos/TestHprof.makeString(TestHprof.java:12) com/develop/demos/TestHprof.main(TestHprof.java:56) TRACE 7: (thread=1) java/lang/ClassLoader.defineClass0(ClassLoader.java:Native method) java/lang/ClassLoader.defineClass(ClassLoader.java:493) java/security/SecureClassLoader.defineClass(SecureClassLoader.java:111) java/net/URLClassLoader.defineClass(URLClassLoader.java:248) java/net/URLClassLoader.access$100(URLClassLoader.java:56) java/net/URLClassLoader$1.run(URLClassLoader.java:195) java/security/AccessController.doPrivileged(AccessController.java:Native method) java/net/URLClassLoader.findClass(URLClassLoader.java:188) java/lang/ClassLoader.loadClass(ClassLoader.java:299) sun/misc/Launcher$AppClassLoader.loadClass(Launcher.java:286) TRACE 14: (thread=1) java/lang/System.arraycopy(System.java:Native method) java/lang/String.getChars(String.java:562) java/lang/StringBuffer.append(StringBuffer.java:402) com/develop/demos/TestHprof.addToCat(TestHprof.java:17) com/develop/demos/TestHprof.makeString(TestHprof.java:12) com/develop/demos/TestHprof.main(TestHprof.java:56) TRACE 13: (thread=1) java/lang/StringBuffer.length(StringBuffer.java:141) java/lang/String.<init>(String.java:478) java/lang/StringBuffer.toString(StringBuffer.java:1068) com/develop/demos/TestHprof.addToCat(TestHprof.java:17) com/develop/demos/TestHprof.makeString(TestHprof.java:12) com/develop/demos/TestHprof.main(TestHprof.java:56) TRACE 20: (thread=1) com/develop/demos/TestHprof.makeStringInline(TestHprof.java:23) com/develop/demos/TestHprof.main(TestHprof.java:57) TRACE 25: (thread=1) java/lang/StringBuffer.expandCapacity(StringBuffer.java:202) java/lang/StringBuffer.append(StringBuffer.java:401) com/develop/demos/TestHprof.makeStringWithLocal(TestHprof.java:30) com/develop/demos/TestHprof.main(TestHprof.java:58) TRACE 3: (thread=1) java/lang/System.initProperties(System.java:Native method) java/lang/System.initializeSystemClass(System.java:858) TRACE 27: (thread=1) java/lang/StringBuffer.<init>(StringBuffer.java:116) java/lang/StringBuffer.<init>(StringBuffer.java:104) com/develop/demos/TestHprof.makeStringWithLocal(TestHprof.java:30) com/develop/demos/TestHprof.main(TestHprof.java:58) TRACE 2: (thread=1) java/security/AccessController.getStackAccessControlContext(AccessController.java:Native method) java/security/AccessController.getContext(AccessController.java:354) java/lang/Thread.init(Thread.java:272) TRACE 12: (thread=1) java/lang/StringBuffer.<init>(StringBuffer.java:118) java/lang/StringBuffer.<init>(StringBuffer.java:104) com/develop/demos/TestHprof.addToCat(TestHprof.java:17) com/develop/demos/TestHprof.makeString(TestHprof.java:12) com/develop/demos/TestHprof.main(TestHprof.java:56) TRACE 6: (thread=1) java/lang/Class.forName0(Class.java:Native method) java/lang/Class.forName(Class.java:120) java/security/Policy.getPolicyNoCheck(Policy.java:157) java/security/SecureClassLoader.getPermissions(SecureClassLoader.java:138) java/net/URLClassLoader.getPermissions(URLClassLoader.java:420) sun/misc/Launcher$AppClassLoader.getPermissions(Launcher.java:294) java/security/SecureClassLoader.getProtectionDomain(SecureClassLoader.java:162) java/security/SecureClassLoader.defineClass(SecureClassLoader.java:111) java/net/URLClassLoader.defineClass(URLClassLoader.java:248) java/net/URLClassLoader.access$100(URLClassLoader.java:56) TRACE 28: (thread=1) java/lang/System.arraycopy(System.java:Native method) java/lang/String.getChars(String.java:562) java/lang/StringBuffer.append(StringBuffer.java:402) com/develop/demos/TestHprof.makeStringWithLocal(TestHprof.java:30) com/develop/demos/TestHprof.main(TestHprof.java:58) TRACE 8: (thread=3) java/lang/Object.wait(Object.java:Native method) java/lang/Object.wait(Object.java:420) java/lang/ref/Reference$ReferenceHandler.run(Reference.java:110) TRACE 9: (thread=1) java/lang/StringBuffer.expandCapacity(StringBuffer.java:202) java/lang/StringBuffer.append(StringBuffer.java:401) com/develop/demos/TestHprof.addToCat(TestHprof.java:17) com/develop/demos/TestHprof.makeString(TestHprof.java:12) com/develop/demos/TestHprof.main(TestHprof.java:56) TRACE 31: (thread=1) java/lang/StringBuffer.toString(StringBuffer.java:1068) com/develop/demos/TestHprof.makeStringWithLocal(TestHprof.java:30) com/develop/demos/TestHprof.main(TestHprof.java:58) TRACE 30: (thread=1) java/lang/String.<init>(String.java:473) java/lang/StringBuffer.toString(StringBuffer.java:1068) com/develop/demos/TestHprof.makeStringWithLocal(TestHprof.java:30) com/develop/demos/TestHprof.main(TestHprof.java:58) TRACE 24: (thread=1) java/lang/System.arraycopy(System.java:Native method) java/lang/StringBuffer.expandCapacity(StringBuffer.java:203) java/lang/StringBuffer.append(StringBuffer.java:401) com/develop/demos/TestHprof.makeStringInline(TestHprof.java:23) com/develop/demos/TestHprof.main(TestHprof.java:57) TRACE 4: (thread=1) sun/misc/URLClassPath$2.<init>(URLClassPath.java:249) sun/misc/URLClassPath.getLoader(URLClassPath.java:247) sun/misc/URLClassPath.getLoader(URLClassPath.java:224) sun/misc/URLClassPath.getResource(URLClassPath.java:137) java/net/URLClassLoader$1.run(URLClassLoader.java:192) java/security/AccessController.doPrivileged(AccessController.java:Native method) java/net/URLClassLoader.findClass(URLClassLoader.java:188) java/lang/ClassLoader.loadClass(ClassLoader.java:299) sun/misc/Launcher$AppClassLoader.loadClass(Launcher.java:286) java/lang/ClassLoader.loadClass(ClassLoader.java:255) TRACE 33: (thread=1) java/lang/StringBuffer.append(StringBuffer.java:402) com/develop/demos/TestHprof.makeStringWithBuffer(TestHprof.java:38) com/develop/demos/TestHprof.main(TestHprof.java:59) TRACE 34: (thread=1) java/lang/System.arraycopy(System.java:Native method) java/lang/String.<init>(String.java:255) java/lang/Long.toString(Long.java:109) java/lang/String.valueOf(String.java:2071) java/lang/StringBuffer.append(StringBuffer.java:532) com/develop/demos/TestHprof.main(TestHprof.java:63) TRACE 23: (thread=1) java/lang/String.getChars(String.java:562) java/lang/StringBuffer.append(StringBuffer.java:402) com/develop/demos/TestHprof.makeStringInline(TestHprof.java:23) com/develop/demos/TestHprof.main(TestHprof.java:57) TRACE 10: (thread=1) java/lang/StringBuffer.<init>(StringBuffer.java:104) com/develop/demos/TestHprof.addToCat(TestHprof.java:17) com/develop/demos/TestHprof.makeString(TestHprof.java:12) com/develop/demos/TestHprof.main(TestHprof.java:56) TRACE 26: (thread=1) java/lang/StringBuffer.expandCapacity(StringBuffer.java:203) java/lang/StringBuffer.append(StringBuffer.java:401) com/develop/demos/TestHprof.makeStringWithLocal(TestHprof.java:30) com/develop/demos/TestHprof.main(TestHprof.java:58) TRACE 19: (thread=1) java/lang/String.<init>(String.java:480) java/lang/StringBuffer.toString(StringBuffer.java:1068) com/develop/demos/TestHprof.makeStringInline(TestHprof.java:23) com/develop/demos/TestHprof.main(TestHprof.java:57) TRACE 32: (thread=1) java/lang/StringBuffer.expandCapacity(StringBuffer.java:Unknown line) java/lang/StringBuffer.append(StringBuffer.java:401) com/develop/demos/TestHprof.makeStringWithLocal(TestHprof.java:30) com/develop/demos/TestHprof.main(TestHprof.java:58) TRACE 16: (thread=1) java/lang/StringBuffer.expandCapacity(StringBuffer.java:202) java/lang/StringBuffer.append(StringBuffer.java:401) com/develop/demos/TestHprof.makeStringInline(TestHprof.java:23) com/develop/demos/TestHprof.main(TestHprof.java:57) TRACE 5: (thread=1) java/io/FileInputStream.readBytes(FileInputStream.java:Native method) java/io/FileInputStream.read(FileInputStream.java:166) java/io/InputStreamReader.fill(InputStreamReader.java:173) java/io/InputStreamReader.read(InputStreamReader.java:249) java/io/BufferedReader.fill(BufferedReader.java:139) java/io/BufferedReader.readLine(BufferedReader.java:299) java/io/BufferedReader.readLine(BufferedReader.java:362) java/util/Properties.load(Properties.java:192) java/security/Security.initialize(Security.java:87) java/security/Security.access$000(Security.java:26) TRACE 17: (thread=1) java/lang/StringBuffer.<init>(StringBuffer.java:116) java/lang/StringBuffer.<init>(StringBuffer.java:104) com/develop/demos/TestHprof.makeStringInline(TestHprof.java:23) com/develop/demos/TestHprof.main(TestHprof.java:57) TRACE 18: (thread=1) java/lang/System.arraycopy(System.java:Native method) java/lang/String.getChars(String.java:562) java/lang/StringBuffer.append(StringBuffer.java:402) com/develop/demos/TestHprof.makeStringInline(TestHprof.java:23) com/develop/demos/TestHprof.main(TestHprof.java:57) TRACE 29: (thread=1) java/lang/System.arraycopy(System.java:Native method) java/lang/StringBuffer.expandCapacity(StringBuffer.java:203) java/lang/StringBuffer.append(StringBuffer.java:401) com/develop/demos/TestHprof.makeStringWithLocal(TestHprof.java:30) com/develop/demos/TestHprof.main(TestHprof.java:58) TRACE 11: (thread=1) java/lang/System.arraycopy(System.java:Native method) java/lang/StringBuffer.expandCapacity(StringBuffer.java:203) java/lang/StringBuffer.append(StringBuffer.java:401) com/develop/demos/TestHprof.addToCat(TestHprof.java:17) com/develop/demos/TestHprof.makeString(TestHprof.java:12) com/develop/demos/TestHprof.main(TestHprof.java:56) TRACE 21: (thread=1) java/lang/String.<init>(String.java:473) java/lang/StringBuffer.toString(StringBuffer.java:1068) com/develop/demos/TestHprof.makeStringInline(TestHprof.java:23) com/develop/demos/TestHprof.main(TestHprof.java:57) CPU SAMPLES BEGIN (total = 792) Sun Dec 30 11:47:28 2001 rank self accum count trace method 1 31.57% 31.57% 250 9 java/lang/StringBuffer.expandCapacity 2 30.18% 61.74% 239 16 java/lang/StringBuffer.expandCapacity 3 29.42% 91.16% 233 25 java/lang/StringBuffer.expandCapacity 4 1.89% 93.06% 15 11 java/lang/System.arraycopy 5 1.14% 94.19% 9 28 java/lang/System.arraycopy 6 1.14% 95.33% 9 29 java/lang/System.arraycopy 7 0.88% 96.21% 7 24 java/lang/System.arraycopy 8 0.38% 96.59% 3 14 java/lang/System.arraycopy 9 0.38% 96.97% 3 18 java/lang/System.arraycopy 10 0.25% 97.22% 2 26 java/lang/StringBuffer.expandCapacity 11 0.25% 97.47% 2 17 java/lang/StringBuffer.<init> 12 0.13% 97.60% 1 22 java/lang/StringBuffer.append 13 0.13% 97.73% 1 15 com/develop/demos/TestHprof.addToCat 14 0.13% 97.85% 1 7 java/lang/ClassLoader.defineClass0 15 0.13% 97.98% 1 13 java/lang/StringBuffer.length 16 0.13% 98.11% 1 20 com/develop/demos/TestHprof.makeStringInline 17 0.13% 98.23% 1 27 java/lang/StringBuffer.<init> 18 0.13% 98.36% 1 12 java/lang/StringBuffer.<init> 19 0.13% 98.48% 1 6 java/lang/Class.forName0 20 0.13% 98.61% 1 8 java/lang/Object.wait 21 0.13% 98.74% 1 31 java/lang/StringBuffer.toString 22 0.13% 98.86% 1 30 java/lang/String.<init> 23 0.13% 98.99% 1 4 sun/misc/URLClassPath$2.<init> 24 0.13% 99.12% 1 33 java/lang/StringBuffer.append 25 0.13% 99.24% 1 34 java/lang/System.arraycopy 26 0.13% 99.37% 1 23 java/lang/String.getChars 27 0.13% 99.49% 1 10 java/lang/StringBuffer.<init> 28 0.13% 99.62% 1 19 java/lang/String.<init> 29 0.13% 99.75% 1 32 java/lang/StringBuffer.expandCapacity 30 0.13% 99.87% 1 5 java/io/FileInputStream.readBytes 31 0.13% 100.00% 1 21 java/lang/String.<init> CPU SAMPLES END