SPLASH 2023
Sun 22 - Fri 27 October 2023 Cascais, Portugal
Sun 22 Oct 2023 11:00 - 11:22 at Room II - MPLR Session 2 Chair(s): Matthew J. Parkinson

Ruby is a dynamically-typed programming language with a large breadth of features which
has grown in popularity with the rise of the modern web, and remains at the core of the
implementation of widely-used online platforms such as Shopify, GitHub, Discourse,
and Mastodon.

There have been many attempts to integrate JIT compilation into Ruby implementations, but until recently, despite impressive
performance on benchmarks, none had seen widespread adoption.
This has changed with the arrival of YJIT, a new JIT compiler based on a Lazy Basic Block Versioning (LBBV) architecture which has recently been upstreamed into CRuby,
and has since seen multiple large-scale production deployments.

This paper extends on previous work on YJIT and takes a pragmatic approach towards evaluating YJIT's performance in a production context. We evaluate and compare its performance on benchmarks as well as a large-scale real-world production deployment, and we look not only at peak performance, but also at memory usage and warm-up time.

On all of our benchmarks, YJIT is able to consistently outperform the CRuby interpreter by a wide
margin. It offers consistent speedups, full compatibility with existing Ruby code, much less memory overhead and faster warm-up compared to JRuby and TruffleRuby.
We also show that YJIT is able to deliver significant speedups on a real-world deployment on Shopify's worldwide StoreFront Renderer infrastructure, an application for which it is currently the only viable JIT compiler.

Sun 22 Oct

Displayed time zone: Lisbon change

11:00 - 12:30
MPLR Session 2MPLR at Room II
Chair(s): Matthew J. Parkinson Microsoft Azure Research
11:00
22m
Talk
Evaluating YJIT’s Performance in a Production Context: A Pragmatic Approach
MPLR
DOI
11:22
22m
Talk
CacheIR: The Benefits of a Structured Representation for Inline Caches
MPLR
Jan de Mooij Mozilla, Matthew Gaudet Mozilla, Iain Ireland Mozilla, Nathan Henderson University of Alberta, Jose Nelson Amaral University of Alberta
DOI File Attached
11:45
22m
Talk
Diagnosing Compiler Performance by Comparing Optimization Decisions
MPLR
Andrej Pečimúth Oracle Labs; Charles University, David Leopoldseder Oracle Labs, Petr Tuma Charles University
DOI
12:07
22m
Talk
Morello MicroPython: A Python Interpreter for CHERI
MPLR
Duncan Lowther University of Glasgow, Dejice Jacob University of Glasgow, Jeremy Singer University of Glasgow
DOI Pre-print