Profiling a webapp

After a comment about the speed of the DAS registry responding to web service requests such as http://www.dasregistry.org/das/sources I decided to investigate. Looking at the code there is no obvious reason for slow responses as the data is read from a database seldomly and stored as objects in a cache- all responses are then pretty much filtered sources returned.

To investigate perfomance I used a shell script with 10 wget requests and the time command like first to my development machine from the same network and then from within the network to the production servers via the front ends:

/usr/bin/time sh testsources.sh   (note: /usr/bin/ was needed otherwise a different program called time was run which didn’t give the output expected)

4 results are below:

0.02user 0.10system 0:03.17elapsed 3%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6082minor)pagefaults 0swaps

0.02user 0.10system 0:03.29elapsed 3%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6085minor)pagefaults 0swaps

0.02user 0.09system 0:02.81elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6082minor)pagefaults 0swaps

0.02user 0.06system 0:03.36elapsed 2%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6087minor)pagefaults 0swaps

for the live servers:

/usr/bin/time sh testlivesources.sh

0.02user 0.07system 0:01.85elapsed 5%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6103minor)pagefaults 0swaps

0.02user 0.07system 0:01.58elapsed 6%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6097minor)pagefaults 0swaps

0.00user 0.06system 0:02.28elapsed 3%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6104minor)pagefaults 0swaps

0.02user 0.08system 0:03.15elapsed 3%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6094minor)pagefaults 0swaps

mac with 10 keywords queries:

0.01user 0.03system 0:01.10elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6113minor)pagefaults 0swaps

public registry with 10 keywords:

0.01user 0.04system 0:05.93elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6104minor)pagefaults 0swaps

0.01user 0.02system 0:01.13elapsed 3%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6107minor)pagefaults 0swaps

0.01user 0.05system 0:01.09elapsed 6%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+6114minor)pagefaults 0swaps

then for some profiling using hprof that comes with Java and has documented in java 5.

use this before starting tomcat :

export CATALINA_OPTS=-agentlib:hprof=cpu=samples,depth=8,file=profile.txt

started tomcat on my dev machine and ran one of the times sh files in this case:

/usr/bin/time sh testsourceswithkeywords.sh

This produces the following output:

JAVA PROFILE 1.0.1, created Fri Jul 30 14:36:04 2010

Header for -agentlib:hprof (or -Xrunhprof) ASCII Output (J2SE 1.5 JVMTI based)

@(#)jvm.hprof.txt    1.3 04/02/09

Copyright (c) 2004 Sun Microsystems, Inc. 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=50000121, id = 200004, name=”Signal Dispatcher”, group=”system”)
THREAD START (obj=50000121, id = 200001, name=”main”, group=”main”)
THREAD START (obj=50000121, id = 200006, name=”ContainerBackgroundProcessor[StandardEngine[Catalina]]”, group=”main”)
THREAD START (obj=50000121, id = 200007, name=”http-8080-Acceptor-0″, group=”main”)
THREAD START (obj=50000a1f, id = 200008, name=”TP-Processor1″, group=”main”)
THREAD START (obj=50000a1f, id = 200009, name=”TP-Processor2″, group=”main”)
THREAD START (obj=50000a1f, id = 200010, name=”TP-Processor3″, group=”main”)
THREAD START (obj=50000a1f, id = 200011, name=”TP-Processor4″, group=”main”)
THREAD START (obj=50000121, id = 200012, name=”TP-Monitor”, group=”main”)
THREAD START (obj=50000121, id = 200013, name=”http-8080-1″, group=”main”)
THREAD START (obj=50000121, id = 200014, name=”http-8080-2″, group=”main”)
THREAD END (id = 200006)
THREAD END (id = 200001)
THREAD END (id = 200008)
THREAD START (obj=50000121, id = 200015, name=”DestroyJavaVM”, group=”main”)
THREAD END (id = 200012)
THREAD END (id = 200009)
THREAD START (obj=50000121, id = 200016, name=”Thread-0″, group=”main”)
THREAD END (id = 200010)
THREAD END (id = 200016)
THREAD END (id = 200015)
TRACE 300820:
java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:Unknown line)
java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
java.net.ServerSocket.implAccept(ServerSocket.java:450)
java.net.ServerSocket.accept(ServerSocket.java:421)
org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)
java.lang.Thread.run(Thread.java:613)
TRACE 300834:
java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:Unknown line)
java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
java.net.ServerSocket.implAccept(ServerSocket.java:450)
java.net.ServerSocket.accept(ServerSocket.java:421)
org.apache.catalina.core.StandardServer.await(StandardServer.java:389)
org.apache.catalina.startup.Catalina.await(Catalina.java:642)
org.apache.catalina.startup.Catalina.start(Catalina.java:602)
sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:Unknown line)
TRACE 300835:
java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:Unknown line)
java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
java.net.ServerSocket.implAccept(ServerSocket.java:450)
java.net.ServerSocket.accept(ServerSocket.java:421)
org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:306)
org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:660)
org.apache.jk.common.ChannelSocket$SocketAcceptor.runIt(ChannelSocket.java:870)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
TRACE 301068:
java.net.SocketInputStream.socketRead0(SocketInputStream.java:Unknown line)
java.net.SocketInputStream.read(SocketInputStream.java:129)
org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:730)
org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:366)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:806)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:613)
TRACE 300883:
java.net.SocketInputStream.socketRead0(SocketInputStream.java:Unknown line)
java.net.SocketInputStream.read(SocketInputStream.java:129)
com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1392)
com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1539)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1930)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1168)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279)
com.mysql.jdbc.Connection.execSQL(Connection.java:2281)
TRACE 300457:
java.lang.ClassLoader.defineClass1(ClassLoader.java:Unknown line)
java.lang.ClassLoader.defineClass(ClassLoader.java:676)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1847)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
TRACE 300136:
java.lang.ClassLoader.defineClass1(ClassLoader.java:Unknown line)
java.lang.ClassLoader.defineClass(ClassLoader.java:676)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
java.net.URLClassLoader.access$100(URLClassLoader.java:56)
java.net.URLClassLoader$1.run(URLClassLoader.java:195)
java.security.AccessController.doPrivileged(AccessController.java:Unknown line)
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
TRACE 300480:
java.util.zip.ZipFile.getNextEntry(ZipFile.java:Unknown line)
java.util.zip.ZipFile.access$700(ZipFile.java:35)
java.util.zip.ZipFile$3.nextElement(ZipFile.java:421)
java.util.zip.ZipFile$3.nextElement(ZipFile.java:415)
java.util.jar.JarFile$1.nextElement(JarFile.java:223)
java.util.jar.JarFile$1.nextElement(JarFile.java:222)
org.apache.catalina.startup.TldConfig.tldScanJar(TldConfig.java:464)
org.apache.catalina.startup.TldConfig.execute(TldConfig.java:301)
TRACE 301051:
java.net.SocketInputStream.socketRead0(SocketInputStream.java:Unknown line)
java.net.SocketInputStream.read(SocketInputStream.java:129)
java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
java.io.BufferedInputStream.read(BufferedInputStream.java:235)
org.apache.axis.transport.http.HTTPSender.readHeadersFromSocket(HTTPSender.java:583)
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:143)
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
TRACE 300907:
java.net.SocketInputStream.socketRead0(SocketInputStream.java:Unknown line)
java.net.SocketInputStream.read(SocketInputStream.java:129)
com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1392)
com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:1414)
com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:284)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1326)
com.mysql.jdbc.Connection.execSQL(Connection.java:2281)
com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1634)
TRACE 300464:
java.util.zip.Inflater.inflateBytes(Inflater.java:Unknown line)
java.util.zip.Inflater.inflate(Inflater.java:230)
java.util.zip.InflaterInputStream.read(InflaterInputStream.java:128)
org.apache.catalina.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2093)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1786)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
TRACE 301131:
java.lang.Class.getDeclaredFields0(Class.java:Unknown line)
java.lang.Class.privateGetDeclaredFields(Class.java:2259)
java.lang.Class.getDeclaredFields(Class.java:1715)
org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1627)
org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.java:1524)
org.apache.catalina.loader.WebappLoader.stop(WebappLoader.java:707)
org.apache.catalina.core.StandardContext.stop(StandardContext.java:4557)
org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:924)
TRACE 300403:
java.util.zip.ZipFile.getEntry(ZipFile.java:Unknown line)
java.util.zip.ZipFile.getEntry(ZipFile.java:252)
java.util.jar.JarFile.getEntry(JarFile.java:206)
java.util.jar.JarFile.getJarEntry(JarFile.java:189)
sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:674)
sun.misc.URLClassPath.getResource(URLClassPath.java:161)
java.net.URLClassLoader$1.run(URLClassLoader.java:192)
java.security.AccessController.doPrivileged(AccessController.java:Unknown line)
TRACE 300483:
java.util.zip.ZipEntry.initFields(ZipEntry.java:Unknown line)
java.util.zip.ZipEntry.<init>(ZipEntry.java:100)
java.util.zip.ZipFile$3.nextElement(ZipFile.java:437)
java.util.zip.ZipFile$3.nextElement(ZipFile.java:415)
java.util.jar.JarFile$1.nextElement(JarFile.java:223)
java.util.jar.JarFile$1.nextElement(JarFile.java:222)
org.apache.catalina.startup.TldConfig.tldScanJar(TldConfig.java:464)
org.apache.catalina.startup.TldConfig.execute(TldConfig.java:301)
TRACE 300920:
java.net.SocketOutputStream.socketWrite0(SocketOutputStream.java:Unknown line)
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
java.net.SocketOutputStream.write(SocketOutputStream.java:136)
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
com.mysql.jdbc.MysqlIO.send(MysqlIO.java:1765)
com.mysql.jdbc.MysqlIO.send(MysqlIO.java:1728)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1149)
TRACE 300458:
java.util.zip.ZipFile.getEntry(ZipFile.java:Unknown line)
java.util.zip.ZipFile.getEntry(ZipFile.java:252)
java.util.jar.JarFile.getEntry(JarFile.java:206)
java.util.jar.JarFile.getJarEntry(JarFile.java:189)
org.apache.catalina.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2001)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1786)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
TRACE 300899:
java.net.SocketInputStream.socketRead0(SocketInputStream.java:Unknown line)
java.net.SocketInputStream.read(SocketInputStream.java:129)
com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1392)
com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:1429)
com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:284)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1326)
com.mysql.jdbc.Connection.execSQL(Connection.java:2281)
com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1634)
TRACE 300450:
java.util.zip.ZipFile.open(ZipFile.java:Unknown line)
java.util.zip.ZipFile.<init>(ZipFile.java:203)
java.util.jar.JarFile.<init>(JarFile.java:134)
java.util.jar.JarFile.<init>(JarFile.java:99)
org.apache.catalina.loader.WebappLoader.setRepositories(WebappLoader.java:1009)
org.apache.catalina.loader.WebappLoader.start(WebappLoader.java:650)
org.apache.catalina.core.StandardContext.start(StandardContext.java:4212)
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
TRACE 300456:
java.lang.ClassLoader.findBootstrapClass(ClassLoader.java:Unknown line)

…….

with some more like this:

CPU SAMPLES BEGIN (total = 8753) Fri Jul 30 14:36:32 2010
rank   self  accum   count trace method
1 24.33% 24.33%    2130 300820 java.net.PlainSocketImpl.socketAccept
2 24.23% 48.57%    2121 300834 java.net.PlainSocketImpl.socketAccept
3 24.23% 72.80%    2121 300835 java.net.PlainSocketImpl.socketAccept
4 15.99% 88.79%    1400 301068 java.net.SocketInputStream.socketRead0
5  2.40% 91.19%     210 300883 java.net.SocketInputStream.socketRead0
6  0.45% 91.64%      39 300457 java.lang.ClassLoader.defineClass1
7  0.22% 91.85%      19 300136 java.lang.ClassLoader.defineClass1
8  0.18% 92.04%      16 300480 java.util.zip.ZipFile.getNextEntry
9  0.16% 92.20%      14 301051 java.net.SocketInputStream.socketRead0
10  0.14% 92.33%      12 300907 java.net.SocketInputStream.socketRead0
11  0.13% 92.46%      11 300464 java.util.zip.Inflater.inflateBytes
12  0.13% 92.59%      11 301131 java.lang.Class.getDeclaredFields0
13  0.11% 92.70%      10 300403 java.util.zip.ZipFile.getEntry
14  0.11% 92.81%      10 300483 java.util.zip.ZipEntry.initFields
15  0.11% 92.93%      10 300920 java.net.SocketOutputStream.socketWrite0
16  0.10% 93.03%       9 300458 java.util.zip.ZipFile.getEntry
17  0.10% 93.13%       9 300899 java.net.SocketInputStream.socketRead0
18  0.07% 93.20%       6 300450 java.util.zip.ZipFile.open
19  0.07% 93.27%       6 300456 java.lang.ClassLoader.findBootstrapClass
20  0.06% 93.33%       5 300439 java.io.UnixFileSystem.getBooleanAttributes0
21  0.06% 93.39%       5 300892 java.net.SocketInputStream.socketRead0
22  0.06% 93.44%       5 300216 java.lang.ClassLoader.findBootstrapClass
23  0.06% 93.50%       5 300878 java.net.SocketInputStream.socketRead0
24  0.06% 93.56%       5 300481 java.util.zip.ZipFile.freeEntry
25  0.06% 93.61%       5 300766 java.lang.ref.Finalizer.invokeFinalizeMethod
26  0.05% 93.66%       4 300886 java.net.SocketInputStream.socketRead0
27  0.05% 93.71%       4 301010 sun.security.provider.SHA.implCompress
28  0.05% 93.75%       4 300887 java.net.PlainSocketImpl.socketAvailable
29  0.05% 93.80%       4 300747 java.lang.Throwable.fillInStackTrace
30  0.03% 93.83%       3 300494 java.lang.ClassLoader.defineClass1
31  0.03% 93.86%       3 300909 java.net.SocketInputStream.socketRead0
32  0.03% 93.90%       3 301081 java.io.PrintWriter.write
33  0.03% 93.93%       3 300215 java.util.zip.Inflater.inflateBytes
34  0.03% 93.97%       3 300664 java.io.UnixFileSystem.getBooleanAttributes0
35  0.03% 94.00%       3 300982 java.lang.String.intern
36  0.03% 94.04%       3 300940 java.net.SocketInputStream.socketRead0
37  0.03% 94.07%       3 300721 java.io.UnixFileSystem.getBooleanAttributes0
38  0.03% 94.10%       3 300943 java.lang.Throwable.fillInStackTrace
39  0.03% 94.14%       3 300427 java.lang.Throwable.fillInStackTrace
40  0.03% 94.17%       3 301062 sun.nio.cs.SingleByteEncoder.encodeArrayLoop
41  0.03% 94.21%       3 300698 java.lang.Throwable.fillInStackTrace
42  0.03% 94.24%       3 300953 java.lang.Throwable.fillInStackTrace
43  0.03% 94.28%       3 300335 java.lang.Object.clone
44  0.02% 94.30%       2 300328 sun.misc.Unsafe.defineClass
45  0.02% 94.32%       2 300445 java.lang.String.intern
46  0.02% 94.34%       2 300322 sun.misc.IOUtils.readFully
47  0.02% 94.37%       2 301102 java.util.ArrayList.indexOf
48  0.02% 94.39%       2 300906 java.net.SocketInputStream.read
49  0.02% 94.41%       2 300499 java.util.zip.Inflater.inflateBytes
50  0.02% 94.44%       2 300350 java.util.zip.ZipFile.getEntry
51  0.02% 94.46%       2 300500 java.util.zip.Inflater.end
52  0.02% 94.48%       2 301097 java.net.SocketOutputStream.socketWrite0
53  0.02% 94.50%       2 301075 sun.nio.cs.SingleByteEncoder.encodeArrayLoop
54  0.02% 94.53%       2 301095 java.lang.Object.clone
55  0.02% 94.55%       2 300843 java.util.zip.ZipFile.open
56  0.02% 94.57%       2 300425 java.lang.Throwable.fillInStackTrace
57  0.02% 94.60%       2 300762 java.lang.Object.clone
58  0.02% 94.62%       2 300960 java.net.SocketInputStream.socketRead0
59  0.02% 94.64%       2 300726 java.nio.Bits.copyToByteArray
60  0.02% 94.66%       2 300969 sun.reflect.Reflection.getClassAccessFlags
61  0.02% 94.69%       2 300791 java.io.UnixFileSystem.canonicalize0
62  0.02% 94.71%       2 301016 java.lang.ClassLoader.findLoadedClass0
63  0.02% 94.73%       2 300821 java.lang.Throwable.fillInStackTrace
64  0.02% 94.76%       2 300719 java.util.zip.Inflater.inflateBytes
65  0.02% 94.78%       2 300720 java.io.UnixFileSystem.canonicalize0
66  0.02% 94.80%       2 301116 org.biojava.services.das.servlets.RegistryServletResponseWriter.writeResponse
67  0.02% 94.82%       2 300933 java.lang.Character.toLowerCase
68  0.02% 94.85%       2 300939 java.lang.Character.isLetter
69  0.02% 94.87%       2 301107 java.io.PrintWriter.write
70  0.02% 94.89%       2 300928 java.net.SocketInputStream.socketRead0
71  0.01% 94.90%       1 300354 org.apache.catalina.core.ContainerBase.<init>
72  0.01% 94.92%       1 300418 java.net.URLClassLoader.findResources
73  0.01% 94.93%       1 300355 java.net.URLStreamHandler.parseURL
74  0.01% 94.94%       1 300356 java.lang.Object.hashCode
75  0.01% 94.95%       1 300248 com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.<init>
76  0.01% 94.96%       1 300205 com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.isTraceOn
77  0.01% 94.97%       1 300722 java.lang.Throwable.fillInStackTrace
78  0.01% 94.98%       1 300723 java.net.URI$Parser.parse
79  0.01% 95.00%       1 300724 org.apache.commons.discovery.tools.ClassUtils.findPublicStaticMethod
80  0.01% 95.01%       1 300725 org.apache.commons.discovery.tools.DiscoverClass.find
81  0.01% 95.02%       1 300157 java.util.Properties.loadConvert
82  0.01% 95.03%       1 300030 java.util.zip.Inflater.init
83  0.01% 95.04%       1 300729 java.net.URI.appendSchemeSpecificPart
84  0.01% 95.05%       1 300731 java.util.jar.JarFile.maybeInstantiateVerifier
85  0.01% 95.06%       1 300426 java.net.URLStreamHandler.parseURL
86  0.01% 95.08%       1 300733 java.lang.Class.getDeclaredFields0
87  0.01% 95.09%       1 300734 java.util.zip.ZipFile.close
88  0.01% 95.10%       1 300735 java.io.UnixFileSystem.getBooleanAttributes0
89  0.01% 95.11%       1 300736 java.io.UnixFileSystem.getLastModifiedTime
90  0.01% 95.12%       1 300737 org.apache.tomcat.util.digester.CallMethodRule.end
91  0.01% 95.13%       1 300738 com.sun.org.apache.xerces.internal.impl.dtd.DTDGrammar$QNameHashtable.put
92  0.01% 95.14%       1 300739 java.lang.Boolean.toBoolean
93  0.01% 95.16%       1 300428 sun.nio.cs.SingleByteEncoder.encodeArrayLoop
94  0.01% 95.17%       1 300742 java.lang.Class.getDeclaredConstructors0
95  0.01% 95.18%       1 300743 java.lang.ClassLoader.loadClass
96  0.01% 95.19%       1 300744 java.security.AccessController.doPrivileged
97  0.01% 95.20%       1 300429 java.lang.Class.forName0
98  0.01% 95.21%       1 300430 java.lang.Thread.currentThread
99  0.01% 95.22%       1 300748 org.apache.catalina.loader.WebappClassLoader.findClass
100  0.01% 95.24%       1 300749 org.apache.xerces.util.AugmentationsImpl.<init>
101  0.01% 95.25%       1 300750 org.apache.xerces.parsers.XML11Configuration.<init>
102  0.01% 95.26%       1 300751 java.util.zip.ZipFile.getInputStream
103  0.01% 95.27%       1 300752 org.apache.xerces.parsers.XML11Configuration.<init>
104  0.01% 95.28%       1 300431 java.lang.String.equals
105  0.01% 95.29%       1 300754 org.apache.xerces.parsers.XML11Configuration.<init>
106  0.01% 95.30%       1 300755 java.util.Arrays.fill
107  0.01% 95.32%       1 300756 org.apache.xerces.impl.XMLEntityScanner.scanLiteral
108  0.01% 95.33%       1 300757 org.apache.xerces.dom.DeferredDocumentImpl.getNodeObject
109  0.01% 95.34%       1 300758 java.util.Hashtable.<init>
110  0.01% 95.35%       1 300759 java.io.FileInputStream.open
111  0.01% 95.36%       1 300760 java.io.UnixFileSystem.getBooleanAttributes0
112  0.01% 95.37%       1 300761 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.comment
113  0.01% 95.38%       1 300432 java.net.URLStreamHandler.parseURL
114  0.01% 95.40%       1 300764 java.util.zip.ZipFile.getEntry
115  0.01% 95.41%       1 300765 java.io.UnixFileSystem.getBooleanAttributes0
116  0.01% 95.42%       1 300767 java.net.URI$Parser.parse
117  0.01% 95.43%       1 300768 sun.reflect.NativeMethodAccessorImpl.invoke0
118  0.01% 95.44%       1 300769 com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.addDTDDefaultAttrsAndValidate
119  0.01% 95.45%       1 300770 javax.naming.NameImpl.extractComp
120  0.01% 95.46%       1 300771 java.lang.Class.getConstantPool
121  0.01% 95.48%       1 300772 sun.reflect.annotation.AnnotationParser.parseAnnotations
122  0.01% 95.49%       1 300433 com.sun.org.apache.xerces.internal.util.SymbolTable$Entry.<init>
123  0.01% 95.50%       1 300774 java.lang.Class.getDeclaredConstructors0
124  0.01% 95.51%       1 300775 org.biojava.servlets.dazzle.FeaturesHandler.<init>
125  0.01% 95.52%       1 300434 java.lang.ClassLoader.loadClass
126  0.01% 95.53%       1 300777 java.text.MessageFormat.makeFormat
127  0.01% 95.54%       1 300435 java.lang.String.toLowerCase
128  0.01% 95.56%       1 300779 org.apache.xerces.impl.XMLEntityManager.setScannerVersion
129  0.01% 95.57%       1 300780 org.apache.xerces.impl.XMLNSDocumentScannerImpl.createContentDispatcher
130  0.01% 95.58%       1 300781 java.net.URI$Parser.parse
131  0.01% 95.59%       1 300782 java.util.zip.ZipEntry.<init>
132  0.01% 95.60%       1 300436 java.lang.AbstractStringBuilder.append
133  0.01% 95.61%       1 300784 java.lang.ClassLoader.loadClass
134  0.01% 95.62%       1 300785 org.apache.xerces.parsers.AbstractDOMParser.startDocument
135  0.01% 95.64%       1 300786 java.lang.ClassLoader.findLoadedClass0
136  0.01% 95.65%       1 300787 org.apache.xerces.impl.XMLEntityScanner.skipSpaces
137  0.01% 95.66%       1 300788 org.apache.xerces.dom.DeferredDocumentImpl.setChunkIndex
138  0.01% 95.67%       1 300789 java.lang.ClassLoader.defineClass1
139  0.01% 95.68%       1 300790 sun.util.calendar.ZoneInfo.getTransitionIndex
140  0.01% 95.69%       1 300792 org.apache.catalina.loader.WebappClassLoader.findResourceInternal
141  0.01% 95.70%       1 300793 java.lang.AbstractStringBuilder.expandCapacity
142  0.01% 95.72%       1 300794 java.nio.HeapByteBuffer.<init>
143  0.01% 95.73%       1 300795 javax.naming.NameImpl.<init>
144  0.01% 95.74%       1 300796 java.text.MessageFormat.makeFormat
145  0.01% 95.75%       1 300797 org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity
146  0.01% 95.76%       1 300798 org.apache.xerces.impl.XMLEntityScanner.scanLiteral
147  0.01% 95.77%       1 300799 org.apache.xerces.impl.dtd.DTDGrammar.element
148  0.01% 95.78%       1 300800 org.apache.xerces.impl.XMLScanner.scanPubidLiteral
149  0.01% 95.80%       1 300801 org.apache.xerces.impl.XMLVersionDetector.reset
150  0.01% 95.81%       1 300802 org.apache.xerces.impl.XMLDTDScannerImpl.scanElementDecl
151  0.01% 95.82%       1 300009 java.lang.Class.forName0
152  0.01% 95.83%       1 300567 sun.security.x509.CertificateExtensions.init
153  0.01% 95.84%       1 300805 java.security.CodeSource.matchCerts
154  0.01% 95.85%       1 300806 java.lang.AbstractStringBuilder.expandCapacity
155  0.01% 95.86%       1 300807 java.util.jar.JarFile$1.nextElement
156  0.01% 95.88%       1 300808 org.apache.catalina.loader.WebappClassLoader.loadClass
157  0.01% 95.89%       1 300809 javax.management.ObjectName.addProperty
158  0.01% 95.90%       1 300810 com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load
159  0.01% 95.91%       1 300811 org.apache.catalina.util.RequestUtil.URLDecode

Advertisements
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: