CIO

JRuby upgrade promises better performance

JRuby 9000 features a rewritten compiler that focuses on optimization

JRuby, a veteran among languages other than Java riding atop the JVM, will be upgraded Wednesday with the release of JRuby 9000.

Available for download at the JRuby website, JRuby 9000, "is going to [have] a lot of potential to increase the performance of Ruby," said project co-lead Charles Oliver Nutter. "JRuby in general brings true threading, true parallelism to Ruby and everything the JVM has to offer for the Ruby world."

Better performance in the new version is achieved by a rewritten compiler that serves as more of a classic, optimizing compiler. "Before, it was more of a direct translation from Ruby byte code into JVM byte code without a lot of optimization," said Nutter. Subsystems like IO and process management now use the same native functionality as the C-based version of Ruby, improving compatibility with standard Posix and Unix behavior, according to a GitHub page detailing the upgrade.

JRuby 9000, the ninth major release of JRuby, is compatible with the Ruby 2.2 specification, and it requires a Java Development Kit compatible with Java 7 or higher. "We see JRuby being the better option for Ruby applications that get too big," said Nutter, a senior software engineer at Red Hat. "They need more threads, they need larger amounts of memory, [a] better garbage collector. Ruby apps kind of grow into JRuby eventually." The JVM is much better able to handle large applications than the standard Ruby runtime, Nutter said.

Developers already have seen reports of improved performance of JRuby 9000 compared to JRuby 1.7, the previous release, the GitHub page states, and upcoming releases will leverage compiler improvements to increase performance further. This final release of JRuby 9000 follows two previews and two release candidates. It's expected to be stable for all users, but builders of JRuby welcome bug reports. Maintenance releases are planned in upcoming months to address new issues that arise.