------art_15338_8955167.1213107872487
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

 The JVM is built for long running processes, optimizing things over time
(jruby takes advantage of this), MRI is going to remain the same speed over
time. (for the most part, see below)

here is a quick example... first the somewhat silly example code:
#######################################
  require 'benchmark'
  num  RGV[0] || 10

  puts "Running #{num} times"

  puts Benchmark.measure {
    num.to_i.times do
      234 + 89239423 + 23482903 + 34892389423 + 234823
    end
  }.total
#######################################
now run it 10 times each: ( ruby/jruby speed.rb 10)
  ruby: 0.0
  jruby: 0.0519

10,000 times:
  ruby:0.03
  jruby:0.105

100,000 times:
  ruby: 0.26
  jruby: 0.217

1,000,000 times:
  ruby: 2.61
  jruby: 1.303

now with some additional optimization for the jvm: jruby -J-server speed.rb
1000000
  jruby: 0.845

This is obviously a silly little test, but can possibly shed light on the
start-up cost diffs between JRuby and MRI... and where the benefit lies.  So
who is faster?  MRI? (yes) JRuby? (yes)  just depends on what problem you
are trying to solve.


On Tue, Jun 10, 2008 at 9:24 AM, Leslie Viljoen <leslieviljoen / gmail.com>
wrote:

> Just put a loop in your Ruby program:
>
> 12.times do
>
> ...main code
>
> end
>
> by restarting the JVM each time, you are not seeing any of JRuby's
> benefits.
>
> Les
>
>
-- 
Aloha!

Mike McKinney
(http://blog.huikau.com)

------art_15338_8955167.1213107872487--