Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Aaron Patterson — Compacting GC in Ruby 2.7 1:15 Hugging selfie 1:55 #Pivorak rules are… 3:19 Meet the speaker 7:43 Java vs Ruby 8:34 My First Serious Ruby Program 12:00 Moral of the story 12:20 Why do I love Rails? 15:38 Comparing GC for MRI 16:26 Compaction 18:00 CPU Caches 19:30 CoW Friendliness 21:18 Eliminating Fragmentation 22:00 Two Heaps (Ruby Heap and Malloc Heap) 25:14 Two Finger Compaction 29:45 Reference Updating 35:10 Allowing Movements in C Extensions 40:18 Pure Ruby shouldn't crash 44:38 Don’t Use Object ID! 46:30 Future Plans 48:28 Questions? Let's chat, meet, and share our ideas via all the social media: Join us on Facebook: https://bit.ly/2WjAgVb Tweet a bit with us there: https://bit.ly/2XmndyK Follow us on LinkedIn: https://bit.ly/2MmSn8j Hop in some cool articles here: https://bit.ly/2IcMgOx Our Instagram account: https://bit.ly/2QDZCaf Become a register member on our site and get all the benefits: https://bit.ly/313cImj
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 video titled "Compacting GC in Ruby 2.7," Aaron Patterson explores the technical nuances of garbage collection (GC) in Ruby, specifically focusing on the implementation of a compacting garbage collector in Ruby 2.7. The talk is framed within Patterson's personal journey in programming, his love for Ruby and Rails, and the evolution of his career that led him to work on the Ruby core team. ### Key Points Discussed: - **Personal History**: Patterson shares insights about his initial struggles as a Java programmer, his introduction to Ruby, and the development of his first serious Ruby program to purchase movie tickets. - **Java vs Ruby**: He contrasts programming in Java—highlighted by lengthy compile times and boilerplate code—with Ruby's simplicity and ease of use. - **Compacting Garbage Collection**: Patterson explains the concept of memory compaction, likening it to defragmenting a hard drive, and discusses how this technique can lead to more efficient memory usage. - **Benefits of Compaction**: The video highlights several advantages of compaction: - Improved memory efficiency by allowing contiguous memory allocation. - Better CPU cache performance, enhancing memory access speeds. - Enhanced Copy-on-Write friendliness for optimized memory usage, particularly in a server environment. - **Dual Heaps**: He also discusses the separation of Ruby's heap and the malloc heap, explaining their roles in Ruby's memory management. - **Two-Finger Compaction Algorithm**: Patterson introduces the two-finger algorithm for memory compaction, detailing the process of moving objects and updating references as part of garbage collection. - **Challenges with C Extensions**: Special attention is given to the complexities of handling C extensions during garbage collection and the strategies implemented to manage references during object movement. - **Future Plans**: Patterson concludes by sharing his aspirations to improve the performance of the compaction process, aiming for a more streamlined implementation that balances efficiency and usability in memory management. ### Conclusion: - The use of compaction is vital for optimizing memory usage in Ruby applications, offering clear benefits to performance while also presenting unique challenges, especially with legacy C extensions. Patterson emphasizes the importance of adapting memory management techniques as Ruby continues to evolve. Overall, the talk showcases the intricate workings of Ruby’s garbage collection mechanism and highlights the dedication of the Ruby community to maintaining and improving the language’s performance.
Suggest modifications
Cancel