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
Hanselminutes with Scott Hanselman by Scott Hanselman

Hanselminutes with Scott Hanselman

377 Listeners

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

Software Engineering Radio - the podcast for professional software developers

272 Listeners

The Changelog: Software Development, Open Source by Changelog Media

The Changelog: Software Development, Open Source

283 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

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

627 Listeners

Ruby Rogues by Charles M Wood

Ruby Rogues

21 Listeners

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

Syntax - Tasty Web Development Treats

983 Listeners

REWORK by 37signals

REWORK

210 Listeners

CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

CoRecursive: Coding Stories

189 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

64 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 Pragmatic Engineer by Gergely Orosz

The Pragmatic Engineer

52 Listeners