Advanced Performance Optimization of Rails Applications

Alexander Dymo (Pluron, Inc.)
General
Location: Pavilion 9 - 10
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.

Comments

Picture of Joel Shapiro
Joel Shapiro
05/07/2009 6:08pm 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 11: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 5:14pm PDT

see link above too

Picture of Alexander Dymo
Alexander Dymo
05/06/2009 5:10pm PDT

Slides for this presentation are here: blog.pluron.com/adymo_rails...

Picture of Carson Cole
Carson Cole
05/06/2009 5:02pm PDT

Great presentation. The slides are where?

Christopher Galtenberg
05/06/2009 4:46pm 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 3:28pm 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 2:26pm 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 yromaine@oreilly.com.

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@ oreilly.com

Program Ideas

Post your suggestions for speakers, topics, and activities on the RailsConf wiki or send an email to rails-idea@oreilly.com.

Press and Media

For media-related inquiries, contact Maureen Jennings at maureen@oreilly.com.

Contact Us

View a complete list of RailsConf 2009 contacts.