Schedule

Maxime Chevalier-Boisvert
Maxime Chevalier-Boisvert
  • @maximecb

Maxime Chevalier-Boisvert obtained a PhD in compiler design at the University of Montreal in 2016, where she developed Basic Block Versioning (BBV), a JIT compiler architecture optimized for dynamically-typed programming languages. She currently leads a project at Shopify to build and improve YJIT, a new JIT compiler built inside CRuby, and won the Ruby Prize in 2021 for her work on optimizing Ruby’s performance.

ZJIT: Building a Next Generation Ruby JIT

YJIT can make Ruby code run faster, but this is a balancing act, because the JIT compiler itself must consume both memory and CPU cycles to compile and optimize your code while it is running. Furthermore, in large-scale production environments such as those of GitHub, Shopify and Stripe, we end up in a situation where YJIT is compiling the same code over and over again on a very large number of servers, which seems very inefficient.

In this presentation, we will go over the design of ZJIT, a next generation Ruby JIT which aims to save and reuse compiled code between executions. We hope that this will help us eliminate duplicated work while also allowing the compiler to spend more time optimizing code so that we can get better performance.