Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: After each boot, slow Java startup, then no problems



I noticed that your output from "java -version" doesn't include "sharing" after "mixed mode". Is this an important difference?

Here's some output from running 'time java -agentlib:hprof=cpu=times -version'

lola:~ jstewart$ time java -agentlib:hprof=cpu=times -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112)
Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode)
Dumping CPU usage by timing methods ... done.

real    0m45.576s
user    0m0.205s
sys     0m0.120s

The contents of java.hprof.txt

THREAD START (obj=50000114, id = 200003, name="Signal Dispatcher", group="system")
THREAD START (obj=50000114, id = 200001, name="main", group="main")
THREAD END (id = 200001)
TRACE 300052:
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:Unknown line)
TRACE 300037:
java.lang.ClassLoader.findLoadedClass(ClassLoader.java:Unknown line)
java.lang.ClassLoader.loadClass(ClassLoader.java:Unknown line)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:Unknown line)
java.lang.ClassLoader.loadClass(ClassLoader.java:Unknown line)
TRACE 300049:
java.lang.ClassLoader.loadClass(ClassLoader.java:Unknown line)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:Unknown line)
java.lang.ClassLoader.loadClass(ClassLoader.java:Unknown line)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:Unknown line)
TRACE 300050:
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:Unknown line)
java.lang.ClassLoader.loadClass(ClassLoader.java:Unknown line)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:Unknown line)
TRACE 300051:
java.lang.ClassLoader.loadClass(ClassLoader.java:Unknown line)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:Unknown line)
TRACE 300036:
java.lang.ClassLoader.checkName(ClassLoader.java:Unknown line)
java.lang.ClassLoader.findLoadedClass(ClassLoader.java:Unknown line)
java.lang.ClassLoader.loadClass(ClassLoader.java:Unknown line)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:Unknown line)
TRACE 300034:
java.lang.String.indexOf(String.java:Unknown line)
java.lang.ClassLoader.checkName(ClassLoader.java:Unknown line)
java.lang.ClassLoader.findLoadedClass(ClassLoader.java:Unknown line)
java.lang.ClassLoader.loadClass(ClassLoader.java:Unknown line)
TRACE 300018:
java.lang.Thread.init(Thread.java:Unknown line)
java.lang.Thread.<init>(Thread.java:Unknown line)
TRACE 300019:
java.lang.Thread.<init>(Thread.java:Unknown line)
TRACE 300153:
sun.misc.Version.print(Version.java:Unknown line)
TRACE 300152:
sun.misc.Version.print(Version.java:Unknown line)
sun.misc.Version.print(Version.java:Unknown line)
TRACE 300137:
java.io.PrintStream.println(PrintStream.java:Unknown line)
sun.misc.Version.print(Version.java:Unknown line)
sun.misc.Version.print(Version.java:Unknown line)
TRACE 300090:
sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:Unknown line)
sun.nio.cs.StreamEncoder.write(StreamEncoder.java:Unknown line)
java.io.OutputStreamWriter.write(OutputStreamWriter.java:Unknown line)
java.io.BufferedWriter.flushBuffer(BufferedWriter.java:Unknown line)
TRACE 300083:
sun.nio.cs.SingleByteEncoder.encodeArrayLoop(SingleByteEncoder.java:Unknown line)
sun.nio.cs.SingleByteEncoder.encodeLoop(SingleByteEncoder.java:Unknown line)
java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:Unknown line)
sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:Unknown line)
TRACE 300115:
java.io.PrintStream.write(PrintStream.java:Unknown line)
java.io.PrintStream.print(PrintStream.java:Unknown line)
java.io.PrintStream.println(PrintStream.java:Unknown line)
sun.misc.Version.print(Version.java:Unknown line)
TRACE 300084:
sun.nio.cs.SingleByteEncoder.encodeLoop(SingleByteEncoder.java:Unknown line)
java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:Unknown line)
sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:Unknown line)
sun.nio.cs.StreamEncoder.write(StreamEncoder.java:Unknown line)
TRACE 300087:
java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:Unknown line)
sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:Unknown line)
sun.nio.cs.StreamEncoder.write(StreamEncoder.java:Unknown line)
java.io.OutputStreamWriter.write(OutputStreamWriter.java:Unknown line)
TRACE 300116:
java.io.PrintStream.print(PrintStream.java:Unknown line)
java.io.PrintStream.println(PrintStream.java:Unknown line)
sun.misc.Version.print(Version.java:Unknown line)
sun.misc.Version.print(Version.java:Unknown line)
TRACE 300093:
java.io.BufferedWriter.flushBuffer(BufferedWriter.java:Unknown line)
java.io.PrintStream.write(PrintStream.java:Unknown line)
java.io.PrintStream.print(PrintStream.java:Unknown line)
java.io.PrintStream.println(PrintStream.java:Unknown line)
TRACE 300091:
sun.nio.cs.StreamEncoder.write(StreamEncoder.java:Unknown line)
java.io.OutputStreamWriter.write(OutputStreamWriter.java:Unknown line)
java.io.BufferedWriter.flushBuffer(BufferedWriter.java:Unknown line)
java.io.PrintStream.write(PrintStream.java:Unknown line)
TRACE 300092:
java.io.OutputStreamWriter.write(OutputStreamWriter.java:Unknown line)
java.io.BufferedWriter.flushBuffer(BufferedWriter.java:Unknown line)
java.io.PrintStream.write(PrintStream.java:Unknown line)
java.io.PrintStream.print(PrintStream.java:Unknown line)
TRACE 300136:
java.io.PrintStream.newLine(PrintStream.java:Unknown line)
java.io.PrintStream.println(PrintStream.java:Unknown line)
sun.misc.Version.print(Version.java:Unknown line)
sun.misc.Version.print(Version.java:Unknown line)
TRACE 300127:
java.io.OutputStreamWriter.write(OutputStreamWriter.java:Unknown line)
java.io.BufferedWriter.flushBuffer(BufferedWriter.java:Unknown line)
java.io.PrintStream.newLine(PrintStream.java:Unknown line)
java.io.PrintStream.println(PrintStream.java:Unknown line)
TRACE 300126:
sun.nio.cs.StreamEncoder.write(StreamEncoder.java:Unknown line)
java.io.OutputStreamWriter.write(OutputStreamWriter.java:Unknown line)
java.io.BufferedWriter.flushBuffer(BufferedWriter.java:Unknown line)
java.io.PrintStream.newLine(PrintStream.java:Unknown line)
TRACE 300128:
java.io.BufferedWriter.flushBuffer(BufferedWriter.java:Unknown line)
java.io.PrintStream.newLine(PrintStream.java:Unknown line)
java.io.PrintStream.println(PrintStream.java:Unknown line)
sun.misc.Version.print(Version.java:Unknown line)
TRACE 300064:
java.nio.Buffer.<init>(Buffer.java:Unknown line)
java.nio.CharBuffer.<init>(CharBuffer.java:Unknown line)
java.nio.HeapCharBuffer.<init>(HeapCharBuffer.java:Unknown line)
java.nio.CharBuffer.wrap(CharBuffer.java:Unknown line)
TRACE 300080:
sun.nio.cs.Surrogate.is(Surrogate.java:Unknown line)
sun.nio.cs.SingleByteEncoder.encodeArrayLoop(SingleByteEncoder.java:Unknown line)
sun.nio.cs.SingleByteEncoder.encodeLoop(SingleByteEncoder.java:Unknown line)
java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:Unknown line)
TRACE 300066:
java.nio.HeapCharBuffer.<init>(HeapCharBuffer.java:Unknown line)
java.nio.CharBuffer.wrap(CharBuffer.java:Unknown line)
sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:Unknown line)
sun.nio.cs.StreamEncoder.write(StreamEncoder.java:Unknown line)
TRACE 300027:
java.lang.System.getProperty(System.java:Unknown line)
TRACE 300026:
java.util.Properties.getProperty(Properties.java:Unknown line)
java.lang.System.getProperty(System.java:Unknown line)
TRACE 300059:
java.io.Writer.write(Writer.java:Unknown line)
java.io.PrintStream.write(PrintStream.java:Unknown line)
java.io.PrintStream.print(PrintStream.java:Unknown line)
java.io.PrintStream.println(PrintStream.java:Unknown line)
TRACE 300025:
java.util.Hashtable.get(Hashtable.java:Unknown line)
java.util.Properties.getProperty(Properties.java:Unknown line)
java.lang.System.getProperty(System.java:Unknown line)
TRACE 300067:
java.nio.CharBuffer.wrap(CharBuffer.java:Unknown line)
sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:Unknown line)
sun.nio.cs.StreamEncoder.write(StreamEncoder.java:Unknown line)
java.io.OutputStreamWriter.write(OutputStreamWriter.java:Unknown line)
TRACE 300132:
java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:Unknown line)
java.io.PrintStream.newLine(PrintStream.java:Unknown line)
java.io.PrintStream.println(PrintStream.java:Unknown line)
sun.misc.Version.print(Version.java:Unknown line)
TRACE 300131:
sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:Unknown line)
java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:Unknown line)
java.io.PrintStream.newLine(PrintStream.java:Unknown line)
java.io.PrintStream.println(PrintStream.java:Unknown line)
TRACE 300129:
sun.nio.cs.StreamEncoder.isOpen(StreamEncoder.java:Unknown line)
sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:Unknown line)
java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:Unknown line)
java.io.PrintStream.newLine(PrintStream.java:Unknown line)
TRACE 300081:
java.lang.String.charAt(String.java:Unknown line)
sun.nio.cs.SingleByteEncoder.encodeArrayLoop(SingleByteEncoder.java:Unknown line)
sun.nio.cs.SingleByteEncoder.encodeLoop(SingleByteEncoder.java:Unknown line)
java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:Unknown line)
TRACE 300065:
java.nio.CharBuffer.<init>(CharBuffer.java:Unknown line)
java.nio.HeapCharBuffer.<init>(HeapCharBuffer.java:Unknown line)
java.nio.CharBuffer.wrap(CharBuffer.java:Unknown line)
sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:Unknown line)
CPU TIME (ms) BEGIN (total = 400) Thu Sep 28 21:26:01 2006
rank self accum count trace method
1 10.25% 10.25% 1 300052 java.lang.ClassLoader.loadClassInternal
2 10.25% 20.50% 1 300037 java.lang.ClassLoader.findLoadedClass
3 10.25% 30.75% 1 300049 java.lang.ClassLoader.loadClass
4 10.25% 41.00% 1 300050 sun.misc.Launcher$AppClassLoader.loadClass
5 10.25% 51.25% 1 300051 java.lang.ClassLoader.loadClass
6 10.00% 61.25% 1 300036 java.lang.ClassLoader.checkName
7 10.00% 71.25% 2 300034 java.lang.String.indexOf
8 3.00% 74.25% 3 300018 java.lang.Thread.init
9 3.00% 77.25% 3 300019 java.lang.Thread.<init>
10 2.25% 79.50% 1 300153 sun.misc.Version.print
11 2.25% 81.75% 1 300152 sun.misc.Version.print
12 2.00% 83.75% 3 300137 java.io.PrintStream.println
13 1.50% 85.25% 6 300090 sun.nio.cs.StreamEncoder$CharsetSE.implWrite
14 1.25% 86.50% 6 300083 sun.nio.cs.SingleByteEncoder.encodeArrayLoop
15 1.25% 87.75% 3 300115 java.io.PrintStream.write
16 1.25% 89.00% 6 300084 sun.nio.cs.SingleByteEncoder.encodeLoop
17 1.25% 90.25% 6 300087 java.nio.charset.CharsetEncoder.encode
18 1.25% 91.50% 3 300116 java.io.PrintStream.print
19 1.00% 92.50% 3 300093 java.io.BufferedWriter.flushBuffer
20 1.00% 93.50% 3 300091 sun.nio.cs.StreamEncoder.write
21 1.00% 94.50% 3 300092 java.io.OutputStreamWriter.write
22 0.75% 95.25% 3 300136 java.io.PrintStream.newLine
23 0.50% 95.75% 3 300127 java.io.OutputStreamWriter.write
24 0.50% 96.25% 3 300126 sun.nio.cs.StreamEncoder.write
25 0.50% 96.75% 3 300128 java.io.BufferedWriter.flushBuffer
26 0.25% 97.00% 6 300064 java.nio.Buffer.<init>
27 0.25% 97.25% 153 300080 sun.nio.cs.Surrogate.is
28 0.25% 97.50% 6 300066 java.nio.HeapCharBuffer.<init>
29 0.25% 97.75% 14 300027 java.lang.System.getProperty
30 0.25% 98.00% 14 300026 java.util.Properties.getProperty
31 0.25% 98.25% 3 300059 java.io.Writer.write
32 0.25% 98.50% 14 300025 java.util.Hashtable.get
33 0.25% 98.75% 6 300067 java.nio.CharBuffer.wrap
34 0.25% 99.00% 3 300132 java.io.OutputStreamWriter.flushBuffer
35 0.25% 99.25% 3 300131 sun.nio.cs.StreamEncoder.flushBuffer
36 0.25% 99.50% 3 300129 sun.nio.cs.StreamEncoder.isOpen
37 0.25% 99.75% 153 300081 java.lang.String.charAt
38 0.25% 100.00% 6 300065 java.nio.CharBuffer.<init>
CPU TIME (ms) END



Michael Hall wrote:

On Sep 28, 2006, at 8:50 PM, Joshua Stewart wrote:

Here's the results of 'time java -version' on my MacBook Pro. I've also included the info about my system.

lola:~ jstewart$ time java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112)
Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing)

real    0m59.110s
user    0m0.101s
sys     0m0.152s

You might try profiling...

time java -agentlib:hprof=cpu=times -version

java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112)
Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode)
Dumping CPU usage by timing methods ... done.

real    0m1.408s
user    0m0.324s
sys     0m0.132s

and see what is using the most time at the end of the java.hprof.txt file

CPU TIME (ms) BEGIN (total = 268) Thu Sep 28 21:00:18 2006
rank   self  accum   count trace method
   1  8.96%  8.96%       1 300152 sun.misc.Version.print
   2  8.96% 17.91%       1 300151 sun.misc.Version.print
   3  7.84% 25.75%       3 300137 java.io.PrintStream.println


Mike Hall mikehall at spacestar dot net http://www.spacestar.net/users/mikehall http://sourceforge.net/projects/macnative



_______________________________________________
Do not post admin requests to the list. They will be ignored.
Java-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/java-dev/email@hidden

This email sent to email@hidden
References: 
 >Re: After each boot, slow Java startup, then no problems (From: Greg Guerin <email@hidden>)
 >Re: After each boot, slow Java startup, then no problems (From: Joshua Stewart <email@hidden>)
 >Re: After each boot, slow Java startup, then no problems (From: Michael Hall <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.