Berin Loritsch wrote: > -Xprofile > Provides a very useful human readable dump of JVM activity. Hats > off to the JDK 1.4 crew!
Here is the typical execution thread for ContainerManager code: Flat profile of 27.64 secs (1402 total ticks): Latched_Thread_68 Interpreted + native Method 78.7% 0 + 767 java.lang.Thread.yield 0.4% 0 + 4 java.io.WinNTFileSystem.canonicalize 0.1% 0 + 1 java.io.BufferedReader.<init> 79.3% 0 + 772 Total interpreted Compiled + native Method 0.2% 2 + 0 org.apache.avalon.excalibur.collections.BucketMap.getHash 0.1% 1 + 0 java.net.URLStreamHandler.getHostAddress 0.1% 1 + 0 java.lang.StringBuffer.expandCapacity 0.1% 1 + 0 sun.nio.cs.UTF_8$Decoder.decodeArrayLoop 0.5% 5 + 0 Total compiled Stub + native Method 19.1% 0 + 186 java.lang.Thread.yield 0.4% 0 + 4 java.io.WinNTFileSystem.getBooleanAttributes 0.2% 0 + 2 java.util.zip.ZipFile.getEntry 0.2% 0 + 2 java.io.WinNTFileSystem.canonicalize 0.1% 1 + 0 java.lang.ClassLoader.findLoadedClass 20.0% 1 + 194 Total stub Thread-local ticks: 30.5% 428 Blocked (of total) 0.2% 2 Unknown: thread_state Here is the typical execution thread for ECM code: Flat profile of 194.59 secs (5729 total ticks): Latched_Thread_94 Interpreted + native Method 0.1% 1 + 3 org.apache.avalon.excalibur.pool.ResourceLimitingPool.get 0.0% 1 + 0 org.apache.avalon.excalibur.component.DefaultComponentFactory.decommission 0.0% 1 + 0 org.apache.avalon.excalibur.collections.BucketMap.put 0.2% 3 + 3 Total interpreted Compiled + native Method 0.2% 6 + 0 java.lang.StringBuffer.expandCapacity 0.1% 5 + 0 java.lang.StringBuffer.append 0.1% 5 + 0 sun.nio.cs.StreamDecoder$CharsetSD.<init> 0.1% 3 + 0 java.lang.StringBuffer.append 0.1% 3 + 0 java.io.Win32FileSystem.normalize 0.1% 3 + 0 java.io.BufferedReader.<init> 0.1% 2 + 0 javax.xml.parsers.FactoryFinder.find 0.1% 2 + 0 vtable chunks 0.1% 2 + 0 java.lang.String.startsWith 0.1% 2 + 0 sun.net.www.ParseUtil.canonizeString 0.0% 0 + 1 org.apache.avalon.framework.parameters.Parameters.getParameter 0.0% 1 + 0 java.lang.StringBuffer.length 0.0% 1 + 0 java.net.URL.hashCode 0.0% 1 + 0 sun.misc.URLClassPath$4.getURL 0.0% 1 + 0 sun.nio.cs.UTF_8.newDecoder 0.0% 1 + 0 sun.net.www.protocol.file.FileURLConnection.<init> 0.0% 1 + 0 sun.misc.Launcher$AppClassLoader.loadClass 0.0% 1 + 0 javax.xml.parsers.SAXParserFactory.newInstance 0.0% 1 + 0 java.util.HashMap.<init> 0.0% 1 + 0 sun.net.www.protocol.jar.URLJarFile.getEntry 0.0% 1 + 0 java.lang.String.getChars 0.0% 1 + 0 java.lang.reflect.Constructor.newInstance 0.0% 1 + 0 java.lang.String.equals 0.0% 1 + 0 java.io.Win32FileSystem.prefixLength 0.0% 1 + 0 java.util.zip.ZipFile.getEntry 1.7% 60 + 1 Total compiled (including elided) Stub + native Method 91.1% 0 + 3264 java.lang.Thread.yield 2.1% 0 + 75 java.io.WinNTFileSystem.canonicalize 1.2% 0 + 42 java.io.WinNTFileSystem.getBooleanAttributes 0.9% 0 + 31 java.util.zip.ZipFile.getEntry 0.3% 0 + 9 java.lang.Throwable.fillInStackTrace 0.1% 0 + 3 java.lang.Class.forName0 0.1% 0 + 2 java.security.AccessController.doPrivileged 0.1% 0 + 2 java.security.AccessController.doPrivileged 0.1% 0 + 2 java.lang.ClassLoader.findLoadedClass 0.0% 0 + 1 java.util.zip.ZipFile.read 0.0% 1 + 0 java.util.zip.ZipFile.getSize 0.0% 0 + 1 sun.reflect.Reflection.getClassAccessFlags 0.0% 0 + 1 java.lang.Class.getComponentType 0.0% 0 + 1 java.lang.reflect.Array.newArray 0.0% 0 + 1 java.util.zip.ZipEntry.initFields 0.0% 1 + 0 java.lang.Thread.currentThread 0.0% 0 + 1 sun.reflect.Reflection.getCallerClass 95.9% 2 + 3436 Total stub Runtime stub + native Method 0.0% 1 + 0 checkcast 0.0% 1 + 0 Total runtime stubs Thread-local ticks: 37.4% 2145 Blocked (of total) 0.1% 3 Compilation 0.2% 8 Unknown: running frame 1.9% 67 Unknown: thread_state As you can see, most of the time is spent in yield(), which is OK. We want a typical situation where multiple threads are interactively vying for the component instances. There is *alot* less activity in ContainerManager than in ECM. It would be interesting to see how the execution plays out linearly..... -- "They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." - Benjamin Franklin --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]