Categories Performance Monitoring

JRuby: Performance Plus the Whole Java World on a Silver Platter

We’re happy to announce that we just recently released our first java platform gem with JRuby instrumentation for AppNeta Traceview. It’s been exciting and at times a bit challenging but we’re very happy to now offer full JRuby support for application performance monitoring.

We found JRuby to be very interesting. You have this hard-core team of very smart guys who put together this alternative language implementation to MRI Ruby – no easy feat by any means and at it’s core, it’s based off of the JVM and inherits all it’s benefits. Most often noted is true parallelism on multi-core processors (with no global interpreter lock). We’ve all already heard and some of us know first-hand that JRuby is fast.

Instead here, we would like to cover a less mentioned fact: what JRuby brings to the Ruby community.

The Java Arsenal

When using the JRuby, you can access and utilize any Java library. Think about that for a second. All of the Java libraries ever written by the Java community are now transparently available to you via JRuby. This adds a huge number of Java libraries (84k per Maven Central Repository) that Ruby developers can now call upon. It’s given that there is some overlap and some Java libraries already have gem wrappers but the mere ability to do this with JRuby is a huge contribution to the Ruby community. And on top of all that you can even access Scala code.

Image from NodeHead

There’s been a few articles recently about Ruby GUI toolkits such as RubyMotion, Shoes and Hackety Hack but with JRuby you can also consider Swing, JavaFX or Lanterna.

Or if you’re interested in game development, you can checkout LWJGL, Slick2D, libGDX or jMonkeyEngine.

JRuby brings a huge amount of resources and choices to Ruby developers. They’ve put together a great set of documents in the JRuby Wiki.

Of course there are other tools to import external libraries into your language platform such as Swig, Ruby FFI or Ruby DL but none do so as automatically and transparently as JRuby does for Java libraries.

So we say thanks and great job to the JRuby team! We believe JRuby still doesn’t get the mainstream attention that it deserves. Try it out – you won’t regret it.

The Instrumentation

With this new JRuby instrumentation (that also utilizes our existing Java instrumentation), you get performance data for all of the supported libraries in the TraceView oboe gem plus everything that our Java instrumentation supports: Performance data for a total of 57 libraries, frameworks, webservers and metrics in all!

Are you already using JRuby and importing Java libraries? Let us know – we’d love to hear about more real world use cases!

If you don’t have a Traceview account yet, get yours now – it’s free!

The new oboe gems are available on Rubygems now!

Further Reading:

Peter Giacomo Lombardo: