InfoQ

News

Ruby Performance Roundup: Ruby 1.9.1 Real World Performance, GC vs EventMachine, Ruby Compiler

Posted by Werner Schuster on May 12, 2009

Community
Ruby
Topics
Performance & Scalability
Tags
Ruby1.9 ,
GarbageCollection

One argument for using Ruby 1.9.1 is the significanlty increased performance. New benchmark results come from running realworld, existing applications and pit 1.8.x, JRuby and 1.9.1 against each other:

We ported Acunote - our online enterprise project management and Scrum software to both JRuby and Ruby 1.9 and ran our set of performance benchmarks.

Ruby 1.9.1 and JRuby both provide significant improvements over 1.8.6, with 1.9.1 in the lead over JRuby, although there is some discussion in the comments about ways to improve JRuby's performance with some command line flags.

Performance improvements in 1.9.1 don't just come from a faster VM, but also from some of the new features. Muhammed Ali shows how to scale a web application using Ruby 1.9.1's Fibers. On the other hand, Muhammed also points out an issue with Object#extend leaking memory in 1.9.1.

Meanwhile, 1.8.6 is still the only option for some projects, due to some missing libraries on 1.9.1. Because of that, there's a lot of interest in fixing some bottlenecks in 1.8.6. Joe Damato has been investigating some of the issues over at his blog. For instance, he investigates the story behind --enable-pthread and why disabling the setting brings 30% performance gains. In another article, Joe and Aman Gupta investigate a problem with the Ruby GC - and came up with a tiny patch that fixes some problems with the GC and EventMachine:

* Speeds up GC by 2-3x because of the huge decrease in stack frame size.
* Fixes an open bug in EventMachine where using threads with Epoll causes lots of slowness. The reason is that each thread will inherit an ~800,000 byte stack that gets copied in and out every context switch.
* This results in an increase from 500 requests/sec to 7000 requests/sec when using Sinatra+Thin+Epoll+Threads. That is pretty ill.

Finally, Viktor Hokstad has been writing a series on compiling Ruby for some time now. A recent entry talks about some of the problems making Ruby fast and possible optimizations.

No comments

Watch Thread Reply

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.