Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
LLVM-based JIT compiler for MRI by Takashi Kokubun JIT compiler is considered a promising approach to achieve Ruby 3x3 goal these days. But the direction of its implementation is not fixed yet. What will be the ideal approach to achieve that goal? In this talk, seeing my experiment to implement LLVM-based JIT compiler, you'll know how native code can be compiled from YARV ISeq, what makes it fast in LLVM, what are the difficulties underlying in it and how to solve them. I hope a discussion in this talk will help Ruby 3 to be great.
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 this presentation at RubyConf 2017, Takashi Kokubun discusses the development of an LLVM-based Just-In-Time (JIT) compiler for MRI (Matz's Ruby Interpreter), focusing on performance optimizations to help achieve the Ruby 3x3 initiative. The talk outlines the purpose of JIT compilation, where bytecode is translated to native code during execution, allowing for faster program performance. Key points include: - **Introduction to JIT**: Kokubun explains that a JIT compiler optimizes execution by identifying frequently called methods (hotspots) and compiling them into native code. - **Motivation for Speed**: The primary goal is to make Ruby significantly faster, potentially doubling performance, which is vital for enhancing user experience in applications. - **Implementation Details**: The speaker describes three JIT implementations, including one named 'MJet,' emphasizing their contributions towards optimizing Ruby's core functionalities. - **Optimizing Techniques**: He delves into methods such as profiling to identify hotspots, function inlining for efficiency, and reducing unnecessary steps in method execution. - **Challenges**: Kokubun also addresses the difficulties in optimizing Ruby’s dynamic nature and ensuring stability and ease of debugging, emphasizing the need for seamless integration within the broader Ruby community. - **Future Enhancements**: These will focus on recognizing redundant operations, improving memory management, and refining the overall user experience to maintain Ruby's dynamic capabilities. Kokubun concludes the talk by underscoring the importance of collaborative discussions within the Ruby community to refine these JIT implementations, aiming to significantly enhance Ruby's performance as a competitive tool in application development.
Suggest modifications
Cancel