Remote Ruby

Optimizing Ruby JIT Compilers with Takashi Kokubun


Listen Later

On this episode of Remote Ruby, Jason and Andrew are here, and they are thrilled to have with them, Takashi Kokubun, a Staff Developer at Shopify. He’s here to talk about JIT (just-in-time) compilers in Ruby and why we would want to use one in Ruby. We’ll hear about his work on YJIT and RJIT, the differences between YJIT and MJIT, and how the primary focus is to make YJIT the best JIT compiler for real-world Ruby apps. 

There’s a conversation about the use of Rust in JIT compiler development for Ruby, and Takashi shares some benefits to using Rust, as well some challenges. Also, there’s some exciting upcoming improvements in YJIT, we find out why HAML is Takashi’s preferred template language, and he tells us about Hamlit, the template engine he authored and maintains. Hit download to hear much more! 

[00:01:54] Since Takashi worked on the original MJIT, he tells us what a JIT compiler is and why we would want to use one in Ruby.


[00:06:41] Takashi talks about working on the original MJIT (Ruby 2.6). 


[00:11:15] Jason wonders what kind of performance gains Takashi saw on average in Ruby 2.6 using MJIT in production. He explains that it was designed to optimize specific benchmarks such as Optcarrot but was not efficient for general purpose applications like Rails. 


[00:12:49] We find out why MJIT was slower on Rails which has to do with it using a sync compiler. 


[00:14:41] What kind of improvements were there in running Optcarrot with MJIT?


[00:16:41] Takashi shares why he joined in Shopify and what he did with YJIT.


[00:20:34] We hear some differences that YJIT has taken from MJIT. For example, YJIT is a JIT compiler that generates machine code directly, making it more efficient and faster than MJIT, which uses a C compiler. Also, he explains the architecture being very different between MJIT and YJIT. 


[00:24:52] We learn some performance benefits using YJIT.


[00:26:19] Let’s listen to Takashi talk about his work on RJIT, and he touches on John Hawthorn and Aaron Patterson’s compilers, hawthjit and TenderJit.

 

[00:31:23] Takashi talks about the primary focus to make YJIT the best JIT compiler for real world Ruby apps. 


[00:34:20] Takashi shares his mixed feelings with Rust, as well as the challenges. 


[00:39:29] There’s some exciting improvements coming up in the JIT world! 


[00:42:33] Andrew wonders if ERB gets any benefit to the stuff happening in YJIT.


[00:43:14] HAML is Takashi’s preferred template language, and he tells us about a HAML package he authored and maintains called, Hamlit. 


[00:44:42] Takashi maintains many libraries, he works on YJIT at Shopify, and writes assembly code.  How does he have time for all this? 


[00:45:46] Find out where you can follow Takashi online.


Panelists:

Jason Charnes

Andrew Mason


Guest:

Takashi Kokubun


Sponsor:

Honeybadger


Links:

Jason Charnes Twitter

Chris Oliver Twitter

Andrew Mason Twitter

Takashi Koku

  • Chris Oliver X/Twitter
  • Andrew Mason X/Twitter
  • Jason Charnes X/Twitter


...more
View all episodesView all episodes
Download on the App Store

Remote RubyBy Chris Oliver, Andrew Mason

  • 4.8
  • 4.8
  • 4.8
  • 4.8
  • 4.8

4.8

34 ratings


More shows like Remote Ruby

View all
Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

Software Engineering Radio - the podcast for professional software developers

262 Listeners

The Changelog: Software Development, Open Source by Changelog Media

The Changelog: Software Development, Open Source

285 Listeners

Startups For the Rest of Us by Rob Walling

Startups For the Rest of Us

694 Listeners

Ruby Rogues by Charles M Wood

Ruby Rogues

45 Listeners

The Ruby on Rails Podcast by Elise Shaffer

The Ruby on Rails Podcast

53 Listeners

The Bike Shed by thoughtbot

The Bike Shed

121 Listeners

Decoder with Nilay Patel by The Verge

Decoder with Nilay Patel

3,115 Listeners

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

630 Listeners

Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

Syntax - Tasty Web Development Treats

985 Listeners

REWORK by 37signals

REWORK

212 Listeners

Code with Jason by Jason Swett

Code with Jason

14 Listeners

The Stack Overflow Podcast by The Stack Overflow Podcast

The Stack Overflow Podcast

63 Listeners

Code and the Coding Coders who Code it by Drew Bragg

Code and the Coding Coders who Code it

6 Listeners

IndieRails by Jess Brown & Jeremy Smith

IndieRails

5 Listeners

The Rails Changelog by Emmanuel Hayford

The Rails Changelog

5 Listeners