Re: jruby vs mri memory management
- From: Charles Oliver Nutter <charles.nutter@xxxxxxx>
- Date: Tue, 4 Mar 2008 10:11:19 -0500
Lionel Bouton wrote:
I've briefly tried Jruby 1.0 and 1.1RC2 with the latest Sun 1.6 JVM on
Linux 32bit when we benchmarked the Ruby Quiz #157 submissions, but I
was not impressed (I didn't check the memory usage though):
- both threw a NulllException in the Jruby code when running one of the
submissions (you can easily reproduce this by looking for the benchmark
posts in the archives, there was an URL for a page with all the relevant
code), you just had to launch the benchmark to get it. There was no way
of protecting from this as it was out of Ruby's scope (ie a begin rescue
couldn't catch it),
- 1.0 was slower than MRI (between 2x and 3x) and 1.1RC2 slightly faster
(5 to 10%), the code was mainly doing floating point computations.
- Launching the JVM is 10x slower than MRI (unusable for small scripts
designed to return quickly).
There have been more perf improvements since RC2, but we should be more
than 5-10% faster for normal computation. IO and such tend to drag us
down a bit though, since there's necessarily more layers to go through.
JRuby is still on my watch list (ruby-gettext is now pure Ruby so one of
my main obstacle to using it in production was recently removed) but I'm
not sure it is quite here yet (aborting the first program I try with it
with a NullException is not encouraging).
That's very unusual...most scripts run perfectly. If there's an NPE, it
will be fixed by the end of today.
For the small scripts problem with the JVM loading, at some point I've
read that future JVMs would have the ability of acting as resident
interpreters (ie: a JVM is always running in the background and new
instances are simply feeding it the code instead of loading a whole new
JVM). I didn't found any documentation on that in the java man page of
my local Sun 1.6.0.03 JDK install though :-(
JRuby supports running with Nailgun, a memory-resident background JVM.
You need the source release to set it up, since it builds a small client
app written in C. Unpack, "ant jruby-nailgun", and then you can use
jruby-ng-server and jruby-ng to run scripts. There are a few caveats
listed here, but it works pretty nice for quick hits:
http://wiki.jruby.org/wiki/JRuby_with_Nailgun
- Charlie
.
- References:
- jruby vs mri memory management
- From: Michal Suchanek
- Re: jruby vs mri memory management
- From: Lionel Bouton
- jruby vs mri memory management
- Prev by Date: Re: constants defined in Kernel are also defined in Object?
- Next by Date: Re: and statement
- Previous by thread: Re: jruby vs mri memory management
- Next by thread: Re: jruby vs mri memory management
- Index(es):
Relevant Pages
|
Loading