Return-Path: Delivered-To: apmail-xml-cocoon-dev-archive@xml.apache.org Received: (qmail 19064 invoked by uid 500); 20 Feb 2002 19:20:01 -0000 Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: cocoon-dev@xml.apache.org Delivered-To: mailing list cocoon-dev@xml.apache.org Received: (qmail 19028 invoked from network); 20 Feb 2002 19:20:00 -0000 Message-ID: <3C73F79B.9040200@apache.org> Date: Wed, 20 Feb 2002 14:23:07 -0500 From: Berin Loritsch User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.8) Gecko/20020204 X-Accept-Language: en-us MIME-Version: 1.0 To: cocoon-dev@xml.apache.org, "avalon-dev@jakarta.apache.org" Subject: Re: [HEADS UP] Don't use -Xincgc with JDK 1.4 References: <3C73EF7F.9050008@apache.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N 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. 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. 0.1% 3 + 0 java.lang.StringBuffer.append 0.1% 3 + 0 java.io.Win32FileSystem.normalize 0.1% 3 + 0 java.io.BufferedReader. 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. 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. 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: cocoon-dev-unsubscribe@xml.apache.org For additional commands, email: cocoon-dev-help@xml.apache.org