Unusually high polymorphic dispatch costs?

Christian Thalinger christian.thalinger at oracle.com
Thu May 5 04:14:15 PDT 2011


On Apr 30, 2011, at 9:27 AM, Charles Oliver Nutter wrote:
> I have pushed a change to JRuby master that fails over to a simple
> inline cache after one failed GWT. This is not how I would want to do
> it long-term, but it does bring some benchmarks back in line with
> non-indy JRuby. Specifically, bench_richards 1000000 now runs in a
> normal amount of time...but it's not faster than non-indy just yet (it
> was *much* slower before).

richards looks much better now.  Today's indy version is even faster on SPARC than non-indy:

$ bin/jruby.sh --server bench/bench_richards.rb 10 1000000
 10.777000   0.000000  10.777000 ( 10.716000)
  9.040000   0.000000   9.040000 (  9.040000)
  8.422000   0.000000   8.422000 (  8.422000)
  7.948000   0.000000   7.948000 (  7.949000)
  7.965000   0.000000   7.965000 (  7.965000)
  7.974000   0.000000   7.974000 (  7.974000)
  8.007000   0.000000   8.007000 (  8.007000)
  8.009000   0.000000   8.009000 (  8.009000)
  7.984000   0.000000   7.984000 (  7.984000)
  8.000000   0.000000   8.000000 (  7.999000)

$ bin/jruby.sh --server -Xcompile.invokedynamic=true bench/bench_richards.rb 10 1000000
 10.935000   0.000000  10.935000 ( 10.874000)
  8.682000   0.000000   8.682000 (  8.682000)
  7.672000   0.000000   7.672000 (  7.672000)
  7.573000   0.000000   7.573000 (  7.573000)
  7.543000   0.000000   7.543000 (  7.543000)
  7.571000   0.000000   7.571000 (  7.572000)
  7.583000   0.000000   7.583000 (  7.583000)
  7.583000   0.000000   7.583000 (  7.583000)
  7.590000   0.000000   7.590000 (  7.590000)
  7.584000   0.000000   7.584000 (  7.584000)

Exciting!

-- Christian


More information about the mlvm-dev mailing list