Advanced Performance Optimization of Rails Applications

Location: Pavilion 9 - 10 Level:
Average rating: ***..
(3.66, 70 ratings)

In this session Alexander covers steps of performance improvement
process necessary to make real-world production Rails application fast
and keep it so.

To start, your application is slow. Make it faster:

  • optimizing common hotspots in Ruby code, including Date class,
    String::+=, BigDecimal comparisons and more
  • preloading has_many/belongs_to associations when Rails eager loading
    can’t (custom joins and selects)
  • optimizing template rendering, especially when including multiple
    small partials
  • tips for faster PostgreSQL queries: manually pushing down conditions
    into subqueries, using arrays instead of joins and more
  • performance characteristics of JRuby and Ruby 1.9

Two new plugins to make it faster faster:

  • Virtual Attributes AR plugin
  • Template Inliner plugin

Your application is fast on development boxes, but is still slow in
production. Some things to look into:

  • impact of filesystem performance
  • shared database performance under severe memory restrictions
  • debugging live production applications (strace, dtrace, oprofile)
  • debugging performance problems caused by load-balancing solutions
    commonly used with Rails

Your application is fast on the server, but is still slow for the
users. Optimizing in-browser performance:

  • HTTP optimization basics, managing browser cache
  • optimizing JavaScript performance, efficient drag-and-drop
  • IE-specific optimizations

Your application is fast. Here are the best practices and processes to
keep it fast:

  • performance-aware coding and unit testing
  • continuous performance integration testing
  • memory profiling
  • techniques for realistic database profiling
  • production performance monitoring

Need to justify performance work to your boss? Alexander will use the
data he gathered from production Rails application to demonstrate how
quickly the performance degrades when you don’t care about it. You
will understand that the continuous work on performance should be the
integral part of your development and deployment process.

Photo of Alexander Dymo

Alexander Dymo

Pluron, Inc.

Alexander is a Director of Engineering in Pluron Inc., the startup
from Silicon Valley working on Acunote – the enterprise project
management and Scrum software
built with Rails. As a software
engineer, team leader and project manager, Alexander has three years
of experience of real world Rails application development, deployment
and performance optimization.

Alexander currently lives and works in Ukraine. He holds a PhD in
Project Management and is a part-time associate professor at National
University of Shipbuilding.

Alexander is actively involved in the Free Software movement. He is a
maintainer of the KDevelop IDE project. He has been a KDE developer
since 2002, has contributed code to KOffice, KDELibs, KDevelop,
including major parts of Ruby and Rails support.

Alexander contributed performance-related patches and optimizations to
both Ruby and RoR.

Alexander regularly presents at conferences in Europe and Americas promoting
free software, KDE and KDevelop.

Comments on this page are now closed.


Picture of Joel Shapiro
Joel Shapiro
05/07/2009 11:08am PDT

Lots of interesting, helpful and specific points with a minimum of fluff and funny photos. Well done! I like how you gave specific examples.

Picture of Daniel Aragao
Daniel Aragao
05/06/2009 4:03pm PDT

The presentation was straight to point, no fluff. Pragmatic approach with data to back it up. Surely not a Twix.

Picture of Shirley Bailes
Shirley Bailes
05/06/2009 10:14am PDT

see link above too

Picture of Alexander Dymo
Alexander Dymo
05/06/2009 10:10am PDT

Slides for this presentation are here:

Picture of Carson Cole
Carson Cole
05/06/2009 10:02am PDT

Great presentation. The slides are where?

Christopher Galtenberg
05/06/2009 9:46am PDT

Smart presentation, lots of valuable lessons. Check out the slides. Plenty to work on now, thanks Alexander!

Picture of Rob Biedenharn
Rob Biedenharn
05/06/2009 8:28am PDT

Wow! A lot to digest. I will definitely have to check out the slides and go over some of the suggestions in more detail over the next few weeks. Thanks!

Andy Mayer
05/05/2009 7:26am PDT

Really looking forward to this talk!

News and Coverage
co-presented by Ruby Central, Inc. O'Reilly
  • Engine Yard
  • Heroku
  • Sun Microsystems
  • Blue Box Group
  • New Relic

Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at RailsConf, contact Yvonne Romaine at

Download the RailsConf Sponsor/Exhibitor Prospectus

Media Partner Opportunities

Download the Media & Promotional Partner Brochure (PDF) for information on trade opportunities with O'Reilly conferences or contact mediapartners@

Program Ideas

Post your suggestions for speakers, topics, and activities on the RailsConf wiki or send an email to

Press and Media

For media-related inquiries, contact Maureen Jennings at

Contact Us

View a complete list of RailsConf 2009 contacts.