Summary
The second release candidate of JRuby 1.1 was made available last week, containing over 260 improvements from the previous version, including a large I/O refactoring and memory improvements for just-in-time compiled methods.
Advertisement
The second release candidate of JRuby 1.1 was released last week. According to Thomas Enebo's release notes, this is a significant update from the previous version:
Ruby 1.1 represents a concerted focus on speed and refinement. Ruby code can
completely compile in an Ahead Of Time (AOT) or Just In Time (JIT) mode...
yielding a faster Ruby... It also uses less memory than our previous releases...
260 issues resolved since JRuby 1.1RC1:
Large IO refactoring
Memory improvements for JIT'd methods:
Control total number of methods JIT'd
Support a JIT cache between runtimes to return permgen
Reduce codesize of generated methods (50-70% reduction)
Charles Nutter, another principal JRuby developer, adds that with this release candidate, JRuby is shaping up to be a serious contender as a deployment environment of choice for Ruby applications, especially as JRuby 1.1 compares favorably with the native Ruby 1.9 runtime:
There have been additional performance improvements in RC2 over RC1. Long story short, performance of most trivial numeric benchmarks approaches or exceeds Ruby 1.9, while most others are on par. So in general, we have started using Ruby 1.9 performance as our baseline...
Unusual for an RC cycle are the 260 bugs we fixed since RC1. Yes, we're bending the rules of RCs a bit, but if we can fix that many bugs in just over a month, who can really fault us for doing so? Nobody can question that JRuby is more compatible with Ruby 1.8.6 than any other Ruby implementation available.
We've also included a number of memory use improvements that should reduce the overall memory usage of a JRuby instance and perhaps more importantly reduce the memory cost of JIT compiled code (so called "Perm Gen" space used by Ruby code that's been compiled to JVM bytecode). In quick measurements, an application running N instance of JRuby used roughly 1/Nth as much perm gen space...
So there's really two big messages that come along with this release. The first is that JRuby is rapidly becoming the Ruby implementation of choice if you want to make a large application as fast and as scalable as possible. The thousands of hours of time we've poured into compatibility, stability, and performance are really paying off. The second message comes from me to you: If you haven't looked at JRuby, now's the time to do so...
What do you think of using JRuby for production Ruby and Rails applications?