Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
@eileencodes Understanding performance output can feel like reading tea leaves. It makes sense to a few people, but many of us are left in the dark; overwhelmed and frustrated by the data. On top of that there are a ton of performance tools to choose from; StackProf, RubyProf, AllocationTracer. Where do you even start? While working on speeding up integration tests in Rails source, I learned that the key to improving the performance of Ruby code is having a baseline, not relying on one profiler and understanding the advantages and limitations of your tools. By utilizing these methods, integration tests are now 3 times faster than they were in Rails 4.2.0, with more improvements being made every day. In this talk we will not only look at how to read performance output, but when and how to use the right profilers for the job. We'll discuss a variety of methods and techniques for benchmarking and profiling so you can get the most out of any performance tool. Talk given at GORUCO 2015: http://goruco.com
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the talk 'How to Performance' by Eileen M. Uchitelle at GoRuCo 2015, the focus is on improving the performance of Ruby code through the effective use of various profiling and benchmarking tools. Uchitelle draws on her experience of collaborating with Aaron Patterson to speed up integration tests in Rails, emphasizing the importance of establishing a baseline for performance measurement before making any changes. Key points from the talk include: - **Baseline Establishment**: Successfully improving performance requires a reliable baseline. Uchitelle created a separate application for testing rather than modifying Basecamp's core code, ensuring a focus on relevant performance metrics. - **Utilizing Benchmarking**: The Benchmark-AP gem was introduced as a tool to achieve accurate benchmarks, allowing for iterations to be measured without ambiguity in average time runs. - **Profiler Selection**: Different profilers were used for troubleshooting, including RubyProf for initial profiling, which helped in identifying slowdowns in the integration tests. Although confusing at first, Uchitelle clarified how to utilize the tool outputs effectively. - **Analysis with StackProf**: StackProf was presented as a superior alternative for pinpointing performance issues as it samples the call stack, thus allowing developers to focus on the most problematic areas of code. For instance, profiling revealed that a high percentage of time was spent in the 'on_signal' method which required further investigation. - **Memory Management**: Uchitelle discussed how AllocationTracer helped in tracking down unnecessary object allocations and garbage collection, demonstrating that optimizing memory usage was essential for faster code execution. - **Continuous Benchmarking**: Throughout the performance improvement process, she stressed the mantra 'Always Be Benchmarking' to verify that any changes implemented indeed resulted in tangible speed improvements. - **Results Achieved**: Ultimately, the integration tests became nearly three times faster than previously noted, with incremental changes yielding significant benefits to the Rails framework. Uchitelle concluded by highlighting the need for a strategic approach in combining different performance tools effectively, reminding attendees that no one tool can address all performance issues. The session aimed to empower developers with actionable methods for optimizing Ruby applications, emphasizing the importance of collaboration and knowledge sharing in the software community.
Suggest modifications
Cancel