Ruby Video
Talks
Speakers
Events
Topics
Leaderboard
Sign in
Talks
Speakers
Events
Topics
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyConf 2018 - Optimizations in Multiple Dimensions by Jamie Gaskins Often when we think about performance, we see it as "if it takes 20 milliseconds to do X, doing X 10 times will take 200ms". It turns out, there's a lot more to it than that. In this talk, you'll learn about various aspects of performance, circumstances that could make scaling a particular code path non-linear, and even how optimizations can make your app slower.
Date
Summary
Markdown supported
In the talk "Optimizations in Multiple Dimensions" presented at RubyConf 2018, Jamie Gaskins delves into the complexities of performance optimization, challenging common perceptions of how optimizations work and emphasizing the need to consider various metrics and trade-offs. **Main Topic:** Jamie Gaskins introduces optimization as a multifaceted challenge that goes beyond simple execution speed assessments to include various performance metrics and their interrelationships. **Key Points:** - **Defining Optimization:** Optimization involves improving specific metrics (e.g., RAM consumption, processing time) while being mindful of potential trade-offs in other areas. - **Important Performance Metrics:** - RAM consumption must be optimized especially when production machines are near capacity. - Milliseconds per transaction are crucial when users wait for transactions to complete. - Transactions per second for scaling operations impact overall application capacity. - Time from feature inception to release and from bug discovery to deployment reflect the development cycle and team responsiveness. - **Communication on Performance:** Gaskins stresses the importance of clear communication about performance metrics among team members to mitigate ambiguity. - **Trade-offs in Optimization:** Different performance metrics like CPU usage, RAM, and dataset sizes often interact in complex ways. Gaskins shares examples such as: - Optimizing for large datasets can lead to inefficiencies in processing smaller datasets and vice versa. - Memory allocation strategies in Ruby require balancing between time and space efficiency considerations. - Caching can improve performance but also introduces its own costs, particularly regarding latency and effective cache management strategies such as LRU. - **Understanding Latency vs. Throughput:** Distinctions between latency (time to complete tasks) and throughput (number of tasks completed over time) are vital; Gaskins advises prioritizing these based on current application needs. - **Production vs. Development:** Performance characteristics vary significantly between production and development environments, underscoring the necessity of real-world testing for accurate performance evaluations. **Conclusions:** - Optimizations should not be viewed in isolation as they can impact multiple facets of an application. - There is no single solution to performance issues; instead, developers should consistently measure, analyze, and adjust strategies based on real usage data and changing application demands. - Building a foundation for performance optimization in advance, using metrics tracking services, enables better decision-making for future improvements. Overall, Gaskins encourages developers to approach optimizations thoughtfully and strategically, considering comprehensive implications on application performance.
Suggest modifications
Cancel