JRuby startup very slow

What about looking at the output of -Xprof? Or will that not tell you
the ruby name of the current method?

Best,
Martin

Charles Oliver N. wrote:

4.482000 0.000000 4.482000 ( 4.481732)
9.041000 0.000000 9.041000 ( 9.041358)

  • JVM startup, including loading all of JRuby’s classes; -Xbootclasspath
    could compare with?

  • Charlie


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

Michèle Garoche wrote:

4.482000 0.000000 4.482000 ( 4.481732)
9.041000 0.000000 9.041000 ( 9.041358)
9.063000 0.000000 9.063000 ( 9.063378)

Interesting! So general performance is mostly on par with what we see on
other platforms. I should say, however, that that performance looks
absolutely dismal. That benchmark runs in 0.31s on my machine on JRuby
and 1.57s in MRI.

Hmmm. I’m not sure what else to try at the moment. The primary sources
of slowness on startup in JRuby are as follows:

  • JVM startup, including loading all of JRuby’s classes; -Xbootclasspath
    largely solved this for us
  • Ruby file load/parse time, which we know is still slower than MRI (but
    not several times slower)
  • Cold Ruby execution performance, which generally means the Java code
    that interprets JRuby is itself still being interpreted by the JVM.
    Eventually both JIT, but not before you’ve been waiting 50 seconds for
    Rails to start up.

In this case it seems like there’s something artificial (i.e. outside of
JRuby) keeping startup slow. Do you have any other Java applications you
could compare with?

  • Charlie

To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

Le 2 sept. 2008 à 21:33, Martin C. Martin a écrit :

What about looking at the output of -Xprof? Or will that not tell
you the ruby name of the current method?
1 - Test with JRuby and Xprof: jruby -J-Xprof benchmarktest.rb
5.193000 0.000000 5.193000 ( 5.192453)
4.934000 0.000000 4.934000 ( 4.935814)
5.725000 0.000000 5.725000 ( 5.725615)
7.715000 0.000000 7.715000 ( 7.714304)
4.646000 0.000000 4.646000 ( 4.645270)

Flat profile of 32.90 secs (2565 total ticks): main

Interpreted + native Method
0.4% 0 + 9 java.util.zip.ZipFile.open
0.3% 7 + 0 org.jruby.parser.DefaultRubyParser.yyparse
0.2% 6 + 0 org.jruby.Ruby.initCore
0.2% 0 + 5 java.lang.Class.forName0
0.2% 4 + 0 org.jruby.gen.org$jruby$RubyModule
$Populator.populate
0.1% 3 + 0 org.jruby.gen.org$jruby$RubyKernel
$Populator.populate
0.1% 3 + 0 org.jruby.gen.org$jruby$RubyArray
$Populator.populate
0.1% 0 + 3 java.lang.Class.getDeclaredMethods0
0.1% 2 + 0 org.jruby.gen.org$jruby$RubyThread
$Populator.populate
0.1% 2 + 0
sun.reflect.generics.parser.SignatureParser.parseIdentifier
0.1% 2 + 0 org.jruby.anno.TypePopulator.populateMethod
0.1% 2 + 0 java.security.AccessController.doPrivileged
0.1% 2 + 0 java.lang.Class.newInstance0
0.1% 2 + 0 org.jruby.gen.org$jruby$RubyIO
$Populator.populate
0.1% 2 + 0 org.jruby.gen.org$jruby$RubyEnumerable
$Populator.populate
0.1% 2 + 0 org.jruby.gen.org$jruby$RubyArgsFile
$Populator.populate
0.1% 2 + 0 org.jruby.gen.org$jruby$RubyString
$Populator.populate
0.0% 1 + 0 org.jruby.ext.posix.MacOSPOSIX.
0.0% 1 + 0 org.jruby.runtime.CallSite
$InlineCachingCallSite.
0.0% 1 + 0 org.jruby.RubyObject.getRuntime
0.0% 1 + 0 java.util.TreeMap$1.iterator
0.0% 1 + 0
org.jruby.internal.runtime.methods.JavaMethod.
0.0% 1 + 0 java.nio.ByteBuffer.
0.0% 1 + 0 org.joni.BitSet.bit
0.0% 1 + 0 org.jruby.RubyObject.callMethod
8.9% 198 + 29 Total interpreted (including elided)

  Compiled + native   Method

30.2% 772 + 0 benchmarktestInvokermethod__0$RUBY
$fib_rubyFixed1.call
20.5% 524 + 0 org.jruby.RubyFixnum$i_method_1_0
$RUBYINVOKER$op_minus.call
17.1% 437 + 0 org.jruby.RubyFixnum$i_method_1_0
$RUBYINVOKER$op_lt.call
8.9% 229 + 0 org.jruby.RubyFixnum$i_method_1_0
$RUBYINVOKER$op_plus.call
3.7% 95 + 0 benchmarktest.method__0$RUBY$fib_ruby
2.9% 74 + 0
org.jruby.internal.runtime.methods.CompiledMethod.call
2.2% 57 + 0 org.jruby.runtime.CallSite
$InlineCachingCallSite.call
0.2% 6 + 0 org.jruby.RubyFixnum.addFixnum
0.1% 2 + 0 java.lang.AbstractStringBuilder.append
0.0% 0 + 1 java.io.FilterInputStream.read
0.0% 1 + 0 java.util.concurrent.ConcurrentHashMap.get
0.0% 1 + 0 java.lang.String.startsWith
0.0% 1 + 0 java.lang.String.replace
0.0% 1 + 0 java.lang.Character.toUpperCase
0.0% 0 + 1 java.util.TreeMap.fixAfterInsertion
0.0% 1 + 0 org.joni.ast.CClassNode.addCType
0.0% 1 + 0 java.io.DataInputStream.readUTF
86.1% 2202 + 2 Total compiled

Thread-local ticks:
0.2% 5 Blocked (of total)
3.3% 84 Class loader
1.8% 45 Compilation

Flat profile of 0.01 secs (1 total ticks): DestroyJavaVM

Thread-local ticks:
100.0% 1 Blocked (of total)

Global summary of 33.17 seconds:
100.0% 2603 Received ticks
0.4% 11 Received GC ticks
1.8% 47 Compilation
3.2% 84 Class loader

2 - Test with JRuby and Xprof and reflection flag true: jruby -J-
Djruby.reflection=true -J-Xprof benchmarktest.rb
10.353000 0.000000 10.353000 ( 10.352684)
9.984000 0.000000 9.984000 ( 9.987085)
10.329000 0.000000 10.329000 ( 10.329140)
10.008000 0.000000 10.008000 ( 10.008605)
9.921000 0.000000 9.921000 ( 9.921369)

Flat profile of 54.11 secs (4508 total ticks): main

Interpreted + native Method
0.1% 0 + 6 java.io.FileInputStream.readBytes
0.1% 6 + 0 org.jruby.Ruby.initCore
0.1% 4 + 0 org.jruby.gen.org$jruby$RubyString
$Populator.populate
0.1% 4 + 0 org.jruby.parser.DefaultRubyParser.yyparse
0.1% 3 + 0
org.jruby.internal.runtime.methods.ReflectedCompiledMethod.call
0.1% 3 + 0 org.jruby.gen.org$jruby$RubyFile
$Populator.populate
0.1% 0 + 3 java.lang.Class.forName0
0.0% 2 + 0 org.jruby.RubyModule.searchMethod
0.0% 2 + 0 org.jruby.RubyFixnum.subtractFixnum
0.0% 2 + 0 org.jruby.gen.org$jruby$RubyHash
$Populator.populate
0.0% 2 + 0 org.jruby.gen.org$jruby$RubyDir
$Populator.populate
0.0% 2 + 0 org.jruby.gen.org$jruby$RubyArray
$Populator.populate
0.0% 2 + 0 sun.misc.ProxyGenerator$ConstantPool.getValue
0.0% 2 + 0 org.joda.time.chrono.BasicChronology.assemble
0.0% 2 + 0 org.jruby.RubyGlobal.createGlobals
0.0% 2 + 0 java.util.TreeMap.fixAfterInsertion
0.0% 2 + 0 org.jruby.Ruby.initExceptions
0.0% 2 + 0 org.jruby.RubyModule.getMethods
0.0% 2 + 0 org.jruby.gen.org$jruby$RubyFileStat
$Populator.populate
0.0% 2 + 0 org.jruby.gen.org$jruby$RubyNumeric
$Populator.populate
0.0% 2 + 0 java.util.concurrent.ConcurrentHashMap.hash
0.0% 1 + 0 org.jruby.RubySymbol$SymbolTable.
0.0% 1 + 0 java.util.concurrent.ConcurrentHashMap
$Segment.
0.0% 1 + 0 java.util.concurrent.ConcurrentHashMap.get
0.0% 1 + 0 sun.reflect.generics.visitor.Reifier.
5.3% 205 + 17 Total interpreted (including elided)

  Compiled + native   Method

22.3% 927 + 0
org.jruby.internal.runtime.methods.CallConfiguration$2.pre
12.2% 506 + 0 org.jruby.RubyFixnum$i_method_1_0
$RUBYINVOKER$op_minus.call
11.7% 487 + 0 org.jruby.RubyFixnum$i_method_1_0
$RUBYINVOKER$op_lt.call
10.4% 432 + 0 sun.reflect.GeneratedMethodAccessor1.invoke
5.1% 214 + 0 org.jruby.RubyFixnum$i_method_1_0
$RUBYINVOKER$op_plus.call
3.3% 138 + 0
org.jruby.internal.runtime.methods.CallConfiguration$2.post
3.0% 122 + 3
org.jruby.internal.runtime.methods.ReflectedCompiledMethod.call
2.2% 91 + 0 benchmarktest.method__0$RUBY$fib_ruby
1.6% 65 + 0 org.jruby.runtime.CallSite
$InlineCachingCallSite.call
0.9% 37 + 0
sun.reflect.DelegatingMethodAccessorImpl.invoke
0.6% 22 + 1
org.jruby.internal.runtime.methods.CompiledMethod.call
0.4% 16 + 0 java.lang.reflect.Method.invoke
0.1% 6 + 0 org.jruby.RubyFixnum.addFixnum
0.0% 0 + 1
java.util.concurrent.locks.AbstractQueuedSynchronizer.release
0.0% 0 + 1
org.jruby.lexer.yacc.InputStreamLexerSource.unread
0.0% 1 + 0 java.lang.AbstractStringBuilder.append
0.0% 1 + 0 sun.misc.ProxyGenerator$ConstantPool.getValue
0.0% 0 + 1 java.util.HashMap.put
0.0% 1 + 0 java.lang.String.indexOf
0.0% 0 + 1 org.jruby.runtime.CacheMap.moduleIncluded
0.0% 1 + 0 java.util.jar.JarFile.hasClassPathAttribute
0.0% 1 + 0 sun.nio.cs.ISO_8859_1$Encoder.encodeArrayLoop
0.0% 0 + 1 java.lang.String.compareTo
73.9% 3068 + 9 Total compiled

      Stub + native   Method

18.3% 0 + 760 sun.reflect.Reflection.getClassAccessFlags
0.0% 0 + 1 java.util.zip.Inflater.inflateBytes
18.3% 0 + 761 Total stub

Thread-local ticks:
7.7% 346 Blocked (of total)
2.2% 93 Class loader
0.2% 9 Compilation

Flat profile of 0.01 secs (1 total ticks): DestroyJavaVM

Thread-local ticks:
100.0% 1 Blocked (of total)

Global summary of 54.62 seconds:
100.0% 4666 Received ticks
1.7% 78 Received GC ticks
0.3% 12 Compilation
0.7% 33 Other VM operations
2.0% 93 Class loader

32.310000 0.690000 33.000000 ( 44.140337)
Test with JRuby and reflection flag to true:
Hmmm. I’m not sure what else to try at the moment. The primary
outside of JRuby) keeping startup slow. Do you have any other Java

Cheers,
Michèle
http://micmacfr.homeunix.org

While the Apple JVM on PPC is no speed demon, I feel compelled to
submit these measurements (on my very old PPC)

[venetia:~/rubytest] rvjansen% ruby benchmarktest.rb
7.190000 0.040000 7.230000 ( 7.265285)
7.190000 0.040000 7.230000 ( 7.265508)
7.270000 0.050000 7.320000 ( 7.378143)
7.260000 0.050000 7.310000 ( 7.345967)
7.300000 0.060000 7.360000 ( 7.555962)
[venetia:~/rubytest] rvjansen% ~/apps/jruby/bin/jruby benchmarktest.rb
1.496000 0.000000 1.496000 ( 1.495729)
1.411000 0.000000 1.411000 ( 1.411432)
1.405000 0.000000 1.405000 ( 1.405907)
1.407000 0.000000 1.407000 ( 1.406445)
1.400000 0.000000 1.400000 ( 1.399835)
[venetia:~/rubytest] rvjansen%

This is a 2*2.5Ghz 2GB machine - one of the watercooled ones. I would
guess that if Michèle’s machine is not very much more ancient, there
is something else which warrants a look around if there are no
processes eating cpu, the machine is paging heavily, the network
drivers are going berserk, or something of that category.

best regards,

René Jansen.


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

Le 2 sept. 2008 à 21:22, Charles Oliver N. a écrit :

4.806000 0.000000 4.806000 ( 4.808206)

  • Ruby file load/parse time, which we know is still slower than MRI
    (but not several times slower)
  • Cold Ruby execution performance, which generally means the Java
    code that interprets JRuby is itself still being interpreted by the
    JVM. Eventually both JIT, but not before you’ve been waiting 50
    seconds for Rails to start up.

In this case it seems like there’s something artificial (i.e.
outside of JRuby) keeping startup slow. Do you have any other Java
applications you could compare with?
I use some which use java, but I don’t know if it would be useful,
since you must be subscribed to use them, anyway:
advfn.com which streams quotes and use Java. It loads relatively fast.
iwqtrade which takes 3 minutes to load, an horror.
and a Java application I wrote which uses JBoss, Postgresql, Seam,
and Bird report, to track buy and sell of shares and do for me my tax
declaration. Slow to start JBoss and load all the classes, but once
it is loaded, it runs relatively well. The parts with Seam runs fast,
mainly because it is just queries and changes in the database, the
parts with Bird are slower, especially a graphic report.I have tried
to use Glassfish, but it is impossible on my machine, once Glassfish
is loaded, there is no memory available enough for the reminder. But
obviously, this one is only for personal usage.

Maybe you can suggest some application I will install and then we may
compare?

Cheers,
Michèle
http://micmacfr.homeunix.org

René Jansen wrote:

1.496000 0.000000 1.496000 ( 1.495729)
berserk, or something of that category.
Maybe you could post results for similar rails-related commands on your
system, so we can see if they’re typical of JRuby-on-PPC?

  • Charlie

To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

Since fib performance doesn’t seem to be the source of the problem,
perhaps you could -Xprof during the Rails commands.

The profiles below are generally in line with what I’d expect for fib
performance.

Michèle Garoche wrote:

4.646000 0.000000 4.646000 ( 4.645270)
0.1% 3 + 0
0.1% 2 + 0 java.lang.Class.newInstance0
0.0% 1 + 0 org.jruby.RubyObject.getRuntime
benchmarktestInvokermethod__0$RUBY$fib_rubyFixed1.call
org.jruby.runtime.CallSite$InlineCachingCallSite.call
86.1% 2202 + 2 Total compiled
100.0% 1 Blocked (of total)

Interpreted + native Method
0.0% 2 + 0 org.jruby.RubyFixnum.subtractFixnum
0.0% 2 + 0

3.3% 138 + 0
0.1% 6 + 0 org.jruby.RubyFixnum.addFixnum
0.0% 0 + 1 java.lang.String.compareTo
0.2% 9 Compilation
1.7% 78 Received GC ticks

Michèle Garoche wrote:

4.806000 0.000000 4.806000 ( 4.808206)
9.063000 0.000000 9.063000 ( 9.063378)

  • Cold Ruby execution performance, which generally means the Java

To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

Le 2 sept. 2008 à 22:33, René Jansen a écrit :

1.496000 0.000000 1.496000 ( 1.495729)
the network drivers are going berserk, or something of that category.
Mine is an iMac PowerPC G4 800 MHz 1 Go SDRAM (about 7 years ago),
the one with flat panel 17" which has been released in July 2002,
the so-called iLamp.

I don’t see at the moment processes eating so much cpu. As for
paging: 132880/5063. I don’t know how I can see the behaviour of
network drivers.

Cheers,
Michèle
http://micmacfr.homeunix.org

Michèle Garoche wrote:

Maybe you can suggest some application I will install and then we may
compare?

Hmm, nothing springs to mind as being a good analog to JRuby. It might
be more useful for us to see how the same commands perform on a
different PPC setup first, so we know whether your case is typical or
not.

  • Charlie

To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

Le 2 sept. 2008 à 23:15, Charles Oliver N. a écrit :

Since fib performance doesn’t seem to be the source of the problem,
perhaps you could -Xprof during the Rails commands.
1 - Test with JRuby and Xprof: jruby -J-Xprof -S rails -d mysql blog
create

Flat profile of 32.62 secs (2132 total ticks): main

Interpreted + native Method
13.0% 274 + 0 org.jruby.parser.DefaultRubyParser.yyparse
1.8% 0 + 37 java.io.FileInputStream.close0
0.9% 0 + 19 java.io.FileOutputStream.writeBytes
0.8% 0 + 17 sun.nio.ch.FileDispatcher.preClose0
0.7% 0 + 14 java.io.FileInputStream.readBytes
0.5% 7 + 3 java.lang.ClassLoader.defineClass1
0.5% 0 + 10 com.sun.jna.Function.invokeInt
0.5% 10 + 0 org.jruby.Ruby.initCore
0.4% 0 + 9 java.io.UnixFileSystem.getBooleanAttributes0
0.3% 0 + 6 java.lang.System.arraycopy
0.3% 0 + 6 java.lang.Class.forName0
0.2% 1 + 4 java.lang.Class.getDeclaredConstructors0
0.2% 5 + 0 org.jruby.javasupport.Java.createJavaModule
0.2% 4 + 0 org.jruby.RubySymbol$SymbolTable.getSymbol
0.1% 3 + 0 org.jruby.ast.CallNoArgBlockNode.interpret
0.1% 3 + 0 org.jruby.RubyString.makeShared
0.1% 3 + 0 org.jruby.runtime.ThreadContext.buildTrace
0.1% 3 + 0 org.jruby.gen.org$jruby$RubyLocalJumpError
$Populator.populate
0.1% 0 + 3 java.io.UnixFileSystem.createFileExclusively
0.1% 3 + 0 org.jruby.RubyModule.variableTableStore
0.1% 3 + 0
org.jruby.compiler.impl.StandardASMCompiler.startScript
0.1% 3 + 0 org.jruby.gen.org$jruby$javasupport
$JavaClass$Populator.populate
0.1% 3 + 0 org.joda.time.chrono.BasicChronology.
0.1% 3 + 0 java.util.concurrent.ConcurrentHashMap
$HashIterator.
0.1% 3 + 0
org.jruby.runtime.scope.ManyVarsDynamicScope.growIfNeeded
54.8% 996 + 162 Total interpreted (including elided)

  Compiled + native   Method

1.7% 36 + 0
org.jruby.lexer.yacc.InputStreamLexerSource.read
0.9% 20 + 0 org.jruby.lexer.yacc.RubyYaccLexer.identifier
0.8% 17 + 0 java.util.concurrent.ConcurrentHashMap.get
0.6% 12 + 1 org.jruby.lexer.yacc.RubyYaccLexer.yylex
0.6% 12 + 0 java.lang.ThreadLocal.get
0.5% 11 + 0 java.io.UnixFileSystem.normalize
0.5% 10 + 0 java.nio.Buffer.
0.4% 9 + 0 java.util.ArrayList.add
0.4% 9 + 0 java.lang.AbstractStringBuilder.append
0.3% 4 + 2 java.util.concurrent.ConcurrentHashMap
$Segment.get
0.3% 6 + 0
org.jruby.runtime.ThreadContext.preMethodFrameAndScope
0.3% 6 + 0 java.util.ArrayList.get
0.3% 6 + 0 org.jruby.parser.DefaultRubyParser.getPosition
0.2% 5 + 0
org.jruby.runtime.ThreadContext.preYieldSpecificBlock
0.2% 5 + 0 org.jruby.RubyModule.constantTableFastFetch
0.2% 5 + 0 org.joni.StackMachine.push
0.2% 5 + 0
org.jruby.runtime.scope.OneVarDynamicScope.getValue
0.2% 4 + 0 org.jruby.RubyArray.modify
0.2% 4 + 0 java.util.concurrent.ConcurrentHashMap
$EntryIterator.getValue
0.2% 4 + 0 org.jruby.RubyString.equals
0.2% 4 + 0 sun.nio.cs.ISO_8859_1$Encoder.encodeArrayLoop
0.2% 4 + 0 java.lang.String.lastIndexOf
0.2% 4 + 0
org.jruby.internal.runtime.methods.JavaMethod.preFrameOnly
0.2% 4 + 0 org.jruby.parser.ParserSupport.newArrayNode
0.2% 4 + 0 org.jruby.parser.StaticScope.getConstantInner
18.1% 359 + 23 Total compiled (including elided)

      Stub + native   Method

4.5% 0 + 95 java.io.UnixFileSystem.getBooleanAttributes0
1.7% 0 + 35 java.lang.String.intern
0.2% 0 + 5 java.lang.Object.hashCode
0.1% 0 + 3 java.lang.ClassLoader.findLoadedClass0
0.0% 0 + 1 java.lang.Object.clone
0.0% 0 + 1 java.lang.Class.isArray
0.0% 0 + 1 java.util.zip.Inflater.inflateBytes
6.7% 0 + 141 Total stub

Thread-local ticks:
0.9% 19 Blocked (of total)
7.5% 159 Class loader
12.9% 273 Compilation

Flat profile of 0.06 secs (3 total ticks): DestroyJavaVM

Thread-local ticks:
33.3% 1 Blocked (of total)
100.0% 2 Unknown: no last frame

Global summary of 33.29 seconds:
100.0% 2526 Received ticks
12.8% 324 Received GC ticks
12.4% 314 Compilation
0.0% 1 Deoptimization
0.2% 4 Other VM operations
6.3% 159 Class loader
0.1% 2 Unknown code

2 - Test with JRuby, Xprof and reflection: jruby -J-
Djruby.reflection=true -J-Xprof -S rails -d mysql blog
create

Flat profile of 38.65 secs (2201 total ticks): main

Interpreted + native Method
14.8% 321 + 0 org.jruby.parser.DefaultRubyParser.yyparse
1.0% 1 + 20 com.sun.jna.Function.invokeInt
0.6% 0 + 14 java.io.FileOutputStream.writeBytes
0.6% 1 + 11 java.lang.Class.getDeclaredConstructors0
0.5% 0 + 11 java.io.UnixFileSystem.getBooleanAttributes0
0.5% 0 + 10 java.lang.Class.forName0
0.5% 0 + 10 java.lang.Throwable.fillInStackTrace
0.4% 8 + 0 org.jruby.Ruby.initCore
0.4% 0 + 8 java.io.FileInputStream.readBytes
0.3% 0 + 7 java.lang.String.intern
0.2% 5 + 0 org.jruby.javasupport.Java.createJavaModule
0.2% 5 + 0 java.lang.String.regionMatches
0.2% 5 + 0 java.lang.ClassLoader.defineClass1
0.2% 4 + 0 org.jruby.ast.MultipleAsgnNode.interpret
0.2% 0 + 4 java.io.UnixFileSystem.createFileExclusively
0.2% 0 + 4 sun.nio.ch.FileDispatcher.write0
0.2% 4 + 0
org.jruby.internal.runtime.methods.DefaultMethod.call
0.2% 4 + 0 org.jruby.RubyArray.alloc
0.2% 1 + 3 com.sun.jna.Memory.malloc
0.2% 4 + 0 org.jruby.Ruby.getGlobalVariables
0.2% 1 + 3 java.lang.ClassLoader.findBootstrapClass
0.2% 0 + 4 sun.nio.ch.FileDispatcher.preClose0
0.1% 3 + 0 java.net.URLClassLoader$1.run
0.1% 3 + 0 org.jruby.parser.ParserSupport.new_call
0.1% 0 + 3 java.util.zip.ZipFile.open
56.0% 1075 + 141 Total interpreted (including elided)

  Compiled + native   Method

2.0% 44 + 0
org.jruby.lexer.yacc.InputStreamLexerSource.read
1.2% 25 + 0 java.io.UnixFileSystem.normalize
1.1% 24 + 0 java.util.concurrent.ConcurrentHashMap.get
1.0% 20 + 1 org.jruby.lexer.yacc.RubyYaccLexer.yylex
0.9% 20 + 0 org.jruby.lexer.yacc.RubyYaccLexer.identifier
0.4% 9 + 0 org.jruby.util.ByteList.hashCode
0.3% 7 + 0 java.nio.Buffer.
0.3% 7 + 0 java.util.ArrayList.add
0.3% 7 + 0 java.lang.AbstractStringBuilder.append
0.2% 5 + 0
org.jruby.internal.runtime.ThreadService.getCurrentContext
0.2% 5 + 0
org.jruby.lexer.yacc.RubyYaccLexer.identifierToken
0.2% 5 + 0 org.jruby.runtime.CompiledBlockLight.pre
0.2% 5 + 0 java.util.ArrayList.get
0.2% 4 + 0 sun.nio.cs.ISO_8859_1$Encoder.encodeArrayLoop
0.2% 4 + 0
org.jruby.runtime.ThreadContext.preMethodFrameAndScope
0.2% 3 + 1 org.jruby.runtime.CompiledBlock.yield
0.2% 4 + 0
org.jruby.lexer.yacc.InputStreamLexerSource.unread
0.1% 1 + 2 jruby.objectweb.asm.ByteVector.putUTF8
0.1% 3 + 0 org.jruby.RubyString.equals
0.1% 3 + 0 org.jruby.ast.InstVarNode.interpret
0.1% 3 + 0
org.jruby.lexer.yacc.StringTerm.parseStringIntoBuffer
0.1% 3 + 0 jruby.objectweb.asm.ClassWriter.a
0.1% 3 + 0 org.jruby.parser.StaticScope.getConstantInner
0.1% 3 + 0 java.lang.ThreadLocal.get
0.1% 3 + 0 org.jruby.parser.ParserSupport.checkExpression
18.7% 374 + 32 Total compiled (including elided)

      Stub + native   Method

3.6% 0 + 78 java.io.UnixFileSystem.getBooleanAttributes0
2.0% 0 + 43 java.lang.String.intern
0.2% 0 + 5 sun.reflect.Reflection.getClassAccessFlags
0.1% 0 + 2 java.lang.Object.hashCode
0.0% 0 + 1 java.lang.ClassLoader.findLoadedClass0
0.0% 0 + 1 java.util.zip.Inflater.inflateBytes
0.0% 0 + 1 java.util.zip.ZipFile.getEntry
6.0% 0 + 131 Total stub

Thread-local ticks:
1.4% 30 Blocked (of total)
6.0% 131 Class loader
13.2% 287 Compilation

Flat profile of 0.00 secs (1 total ticks): DestroyJavaVM

Thread-local ticks:
100.0% 1 Blocked (of total)

Global summary of 39.00 seconds:
100.0% 2627 Received ticks
14.7% 385 Received GC ticks
11.2% 294 Compilation
0.2% 4 Other VM operations
5.0% 131 Class loader

4.934000 0.000000 4.934000 ( 4.935814)
$Populator.populate
0.1% 2 + 0 java.security.AccessController.doPrivileged
0.0% 1 + 0 org.jruby.runtime.CallSite
772 + 0 benchmarktestInvokermethod__0$RUBY
2.2% 57 + 0 org.jruby.runtime.CallSite
0.0% 1 + 0 java.io.DataInputStream.readUTF
0.4% 11 Received GC ticks
Interpreted + native Method 0.1%
0.0% 2 + 0 org.jruby.RubyModule.searchMethod
org.joda.time.chrono.BasicChronology.assemble
0.0% 1 + 0 java.util.concurrent.ConcurrentHashMap
11.7% 487 + 0 org.jruby.RubyFixnum$i_method_1_0
$InlineCachingCallSite.call
0.0% 1 + 0 java.lang.AbstractStringBuilder.append
Stub + native Method 18.3%
Global summary of 54.62 seconds:

Michèle Garoche wrote:

4.482000 0.000000 4.482000 ( 4.481732)
9.041000 0.000000 9.041000 ( 9.041358)
MRI (but not several times slower)
To unsubscribe from this list, please visit:
Michèle
http://micmacfr.homeunix.org


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

Cheers,
Michèle
http://micmacfr.homeunix.org