Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RailsConf 2019 - Profiling and Benchmarking 101 by Nate Berkopec _______________________________________________________________________________________________ Cloud 66 - Pain Free Rails Deployments Cloud 66 for Rails acts like your in-house DevOps team to build, deploy and maintain your Rails applications on any cloud or server. Get $100 Cloud 66 Free Credits with the code: RailsConf-19 ($100 Cloud 66 Free Credits, for the new user only, valid till 31st December 2019) Link to the website: https://cloud66.com/rails?utm_source=-&utm_medium=-&utm_campaign=RailsConf19 Link to sign up: https://app.cloud66.com/users/sign_in?utm_source=-&utm_medium=-&utm_campaign=RailsConf19 _______________________________________________________________________________________________ You know your Rails application is slow. Customers are complaining, and your ops teams are provisioning even more servers but it just isn't helping. What now? In order to fix a performance problem, you have to be able to measure it and diagnose where it is. Profiling and benchmarking are our two tools for doing just that. In this talk, you'll get an introduction to the tools available for benchmarking Ruby code, and how to use a profiler to figure out where your program spends its time.
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 presentation "Profiling and Benchmarking 101" by Nate Berkopec at RailsConf 2019, the focus is on introducing tools and techniques for optimizing Ruby on Rails applications through profiling and benchmarking. The talk aims to equip attendees with foundational skills in measurement to effectively diagnose performance issues in their code. **Key Points Discussed:** - **Introduction to Profiling and Benchmarking:** Berkopec emphasizes the importance of first understanding how to measure and diagnose performance problems before jumping into optimization. He discusses the definitions: - **Benchmarking**: A synthetic measurement of resources or time consumed by a defined procedure, which can include iterations per second or memory usage. - **Profiling**: A detailed accounting of resource consumption at various steps in the code process, showing where the code spends its time in various methods. - **Real-World Example:** Berkopec shares the story of the Apollo Guidance Computer (AGC) nearly aborting the first moon landing due to performance issues, illustrating the critical nature of measurement and the consequences of neglecting proper performance assessment. - **Performance Measurement Process:** - Start by examining production metrics using tools like New Relic or Skylight to identify slow responses or bottlenecks. - Profile locally to drill down into specifics of what makes an action slow. - Create targeted benchmarks for these areas to iterate and measure impact effectively. - **Types of Benchmarks:** Berkopec divides benchmarks into micro (smaller scope), macro (intermediate scope), and app (entire controller actions), explaining how to approach each for reliable results. - **Tips for Profiling and Benchmarking:** - Always assess production-like conditions for accurate profiling. - Use familiar tools such as StackProf and RubyProf for profiling with various output styles. - Focus on the code's real-world execution over synthetic tests, as actual usage patterns may differ significantly. - **Collaboration and Documentation:** Encourage teams to establish a benchmarks folder for performance-related code and run benchmarks consistently to track improvements over time. **Conclusion:** Berkopec highlights that without measurement, performance work is often premature and ineffective. By carefully analyzing production metrics, profiling code, and benchmarking critical paths, developers can effectively optimize their Ruby on Rails applications, leading to more robust and user-friendly software.
Suggest modifications
Cancel