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, David Hill

  • 4.8
  • 4.8
  • 4.8
  • 4.8
  • 4.8

4.8

34 ratings


More shows like Remote Ruby

View all
Planet Money by NPR

Planet Money

30,762 Listeners

The Bike Shed by thoughtbot

The Bike Shed

121 Listeners

The Infinite Monkey Cage by BBC Radio 4

The Infinite Monkey Cage

1,981 Listeners

Pivot by New York Magazine

Pivot

9,747 Listeners

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

623 Listeners

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

Syntax - Tasty Web Development Treats

988 Listeners

REWORK by 37signals

REWORK

215 Listeners

Practical AI by Practical AI LLC

Practical AI

210 Listeners

Maintainable by Robby Russell

Maintainable

32 Listeners

The Prof G Pod with Scott Galloway by Vox Media Podcast Network

The Prof G Pod with Scott Galloway

5,686 Listeners

All-In with Chamath, Jason, Sacks & Friedberg by All-In Podcast, LLC

All-In with Chamath, Jason, Sacks & Friedberg

10,270 Listeners

Breaking Change by Justin Searls

Breaking Change

12 Listeners

Prof G Markets by Vox Media Podcast Network

Prof G Markets

1,464 Listeners

IndieRails by Jess Brown & Jeremy Smith

IndieRails

6 Listeners

On Rails by Rails Foundation, Robby Russell

On Rails

9 Listeners