Advanced Performance Optimization of Rails Applications
Location: Pavilion 9 - 10 Level:
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
- 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
- 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.
People planning to attend this session also want to see:
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.