Hi!

This is dreamhead (one of core developers from XRuby) from
ThoughtWorks. I have been working on JRuby performance recently. I
just add RubyID into JRuby which is helpful to performance in XRuby.
RubyID is similar ID(long) in MRI which use ID to replace String to
reduce comparison cost.

id.txt is test results. There are two tests in it. One is
bench_method_dispatch.rb which Ola has posted in the mailing. The
other is Mingle tests. As you know, ThoughtWorks. runs Mingle on
JRuby. In the id.txt, id result is to use RubyID and string result is
current JRuby.

As you'll see, RubyID gives JRuby a minor improvement. Ola has got
these results, but both of us think it is difficult to decide whether
merge these code to JRuby codebase, because the change is large (from
evaluator/compiler to builtin) and the improvement is minor (1-2%).

What's your idea?

Ye Zheng

--
Everything is simple!
./bin/jruby bench_method_dispatch.rb 

ID result

Test interpreted: 100k loops calling self's foo 100 times
  3.372000   0.000000   3.372000 (  3.372000)
  1.480000   0.000000   1.480000 (  1.481000)
  1.674000   0.000000   1.674000 (  1.674000)
  1.645000   0.000000   1.645000 (  1.646000)
  1.698000   0.000000   1.698000 (  1.699000)
  1.668000   0.000000   1.668000 (  1.668000)
  1.676000   0.000000   1.676000 (  1.675000)
  1.660000   0.000000   1.660000 (  1.660000)
  1.689000   0.000000   1.689000 (  1.689000)
  1.701000   0.000000   1.701000 (  1.700000)

String result

Test interpreted: 100k loops calling self's foo 100 times
  3.513000   0.000000   3.513000 (  3.514000)
  1.760000   0.000000   1.760000 (  1.760000)
  1.697000   0.000000   1.697000 (  1.697000)
  1.730000   0.000000   1.730000 (  1.730000)
  1.968000   0.000000   1.968000 (  1.968000)
  1.910000   0.000000   1.910000 (  1.910000)
  1.878000   0.000000   1.878000 (  1.878000)
  1.853000   0.000000   1.853000 (  1.853000)
  1.882000   0.000000   1.882000 (  1.883000)
  1.861000   0.000000   1.861000 (  1.861000)


./script/jrake test:units

ID result
Finished in 543.868 seconds.

784 tests, 2838 assertions, 0 failures, 0 errors

String result

Finished in 554.218 seconds.

784 tests, 2838 assertions, 0 failures, 0 errors


Attachment: bench_method_dispatch.rb
Description: application/ruby

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to