Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyKaigi2017 http://rubykaigi.org/2017/presentations/jules2689.html Lengthy application boot times cause developers to quickly lose context and view applications in a negative light, which in turn costs organizations a lot of money and productivity. We found that there were a few areas that impacted boot time: compiling Ruby bytecode, serializing configurations, looking up files and constants, autoloading files, and booting Bundler. This talk focuses on our strategies and solutions which improved our boot time by 60%. Attendees will leave with knowledge of ways to find and mitigate their own startup performance bottlenecks.
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
The talk by Julian Nadeau at RubyKaigi 2017, titled "Busting Performance Bottlenecks: Improving Boot Time by 60%", addresses the challenges faced by developers due to lengthy application boot times and presents strategies to optimize performance. Boot time is crucial, as it affects developers' productivity and negatively impacts perceptions of the application. Nadeau shares insights from his experience at Shopify, where improving boot time became essential given the vast number of developers and repeated tasks performed daily. Key points discussed in the presentation include: - **Definition of Boot Time**: Application boot time is defined as the duration taken for an application to start post-command execution. Even moderate boot times can accumulate significantly with frequent testing and command execution. - **Impact of Boot Time on Developer Experience**: Lengthy boot times frustrate developers, leading to decreased productivity, trust issues, and potential financial losses for organizations. Nadeau notes that Shopify faced boot times exceeding 25 seconds, stressing the importance of solutions to mitigate this issue. - **Identified Performance Bottlenecks**: The main areas causing delays included: - **Compilation of Ruby Bytecode**: Dynamic compilation increases boot time as applications grow. Transitioning to Ruby 2.3’s instruction sequence methods allows caching of bytecode, thus expediting the process. - **Serialization**: Previous use of YAML for configurations resulted in slower load times. Switching to faster serialization techniques using Ruby’s Marshal and MessagePack improved efficiency. - **Constant Lookup**: The expensive and complex process of constant lookup can exacerbate delays. Implementing caching strategies can significantly reduce lookup time complexities. - **Boot Snap Gem**: Nadeau introduces the Boot Snap gem, designed to cache files improving boot time efficiency. Notable benefits include: - Efficient caching of stable files, preventing unnecessary recompilation. - Reduction of application boot time; for instance, Discourse's boot time improved from 6 seconds to 3 seconds. - Shopify’s core application saw a decrease from 25 seconds to 6.5 seconds. - **Optimizations in Bundler**: Nadeau discusses performance enhancements in Bundler 1.15, which collectively reduced boot time by approximately 60%, enhancing efficiency across Ruby applications. In conclusion, embracing effective caching and optimization strategies is crucial for improving boot times and the overall developer experience. Nadeau encourages attendees to explore these methods and contribute to the broader Ruby community in pursuit of better performance. This talk provides valuable insights for developers seeking to enhance their applications' startup speeds using practical techniques and shared community knowledge.
Suggest modifications
Cancel