About the Talk
May 6, 2009 10:50 AM
Las Vegas, NVLas Vegas, NV
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:
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.