среда, 22 декабря 2010 г.

Rubinius 1.2.0

New version of promising ruby implementation is out. Congratulations!!!

But what it means for us: ordinary web developers?

I tests simply sinatra application with a webrick server runned on ree-2010.02, ruby-1.9.2 and rubinius rbx head.

All I have installed usign rvm.

One trick for installing rubinius: do `gem install rake` - build process will not proceed if `rake` is not a gem.

Application code is here https://gist.github.com/752120 with a test script and results.
Machine is a AthlonX2 4000+ (actual frequency is 2100Ghz) 2Gb in a single memory bank, Ubuntu 10.10.


Rubinius takes for warmup really long time. Warmup section of test script is made for warming rubinius to a workable state. But it was not enough. Second run of a script gives 0-15% improvement of performance.

Warmed rubinius performs ~14-25% worse than 1.9.2 and 20-37% worse than REE.

Ruby-1.9.2-p0 performs ~10% worse compared to REE. I guess it is cause of superior garbage collection of REE and cause REE runs in a single os thread, but the 1.9.2 runs use several native os thread which comes in price. I think it should change with a single threaded server like `thin`.