Surinx + backport

Charles Oliver Nutter headius at headius.com
Sat Sep 12 02:47:16 PDT 2009


On Sat, Sep 12, 2009 at 3:21 AM, John Rose <John.Rose at sun.com> wrote:
> I just pushed that fix.  I also pushed (what I hope are) the fixes for
> the last GC bugs.  Please let me know what happens.

Updated  numbers for Surinx, new build as of a few minutes ago:

~/projects/surinx ➔ jruby --server -J-XX:+UnlockExperimentalVMOptions
-J-XX:+EnableInvokeDynamic bin/surinx examples/fib.sx
0.091
0.068
0.066
0.067
0.067
0.066
0.066
0.065
0.069
0.066

I don't have Remi's backport handy, but it's obviously very close.
JRuby numbers are nearly as fast as non-indy now too:

~/projects/jruby ➔ jruby --server bench/bench_fib_recursive.rb 100
0.473000   0.000000   0.473000 (  0.421000)
  0.241000   0.000000   0.241000 (  0.241000)
  0.239000   0.000000   0.239000 (  0.239000)
  0.242000   0.000000   0.242000 (  0.242000)
  0.239000   0.000000   0.239000 (  0.239000)
  0.236000   0.000000   0.236000 (  0.236000)
  0.236000   0.000000   0.236000 (  0.236000)

~/projects/jruby ➔ jruby --server -J-XX:+UnlockExperimentalVMOptions
-J-XX:+EnableInvokeDynamic -J-XX:InlineSmallCode=1500
-J-XX:MaxInlineSize=150 bench/bench_fib_recursive.rb 100
  0.444000   0.000000   0.444000 (  0.378000)
  0.236000   0.000000   0.236000 (  0.236000)
  0.231000   0.000000   0.231000 (  0.231000)
  0.234000   0.000000   0.234000 (  0.234000)
  0.233000   0.000000   0.233000 (  0.233000)
  0.235000   0.000000   0.235000 (  0.235000)
  0.235000   0.000000   0.235000 (  0.236000)

If I remove some special-case code for math operations, indy actually
improves, beating stock JRuby:

~/projects/jruby ➔ jruby --server -J-XX:+UnlockExperimentalVMOptions
-J-XX:+EnableInvokeDynamic -J-XX:InlineSmallCode=1500
-J-XX:MaxInlineSize=150 bench/bench_fib_recursive.rb 100
  0.429000   0.000000   0.429000 (  0.365000)
  0.237000   0.000000   0.237000 (  0.237000)
  0.231000   0.000000   0.231000 (  0.230000)
  0.231000   0.000000   0.231000 (  0.230000)
  0.229000   0.000000   0.229000 (  0.230000)
  0.229000   0.000000   0.229000 (  0.229000)
  0.227000   0.000000   0.227000 (  0.227000)
  0.226000   0.000000   0.226000 (  0.227000)

It's time for that blog post I've been promising about "how to" and
"why it's awesome".

- Charlie


More information about the mlvm-dev mailing list