Ruby 2.6 JIT - Progress and Future

  • Performance
  • Portability
  • Stability
  • Security


trunk+JIT: 493.8 i/s
2.6.0-preview1+JIT: 246.4 i/s - 2.00x slower
2.6.0-preview1: 86.8 i/s - 5.69x slower
trunk: 86.2 i/s - 5.73x slower
2.5.0: 80.9 i/s - 6.11x slower
2.0.0: 78.4 i/s - 6.30x slower
Optcarrot Lan_Master.nes
2.6.0-preview3+JIT: 86.6 fps
2.6.0-preview2+JIT: 73.9 fps - 1.17x slower
2.6.0-preview1+JIT: 59.2 fps - 1.46x slower
2.6.0-preview3: 54.6 fps - 1.59x slower
2.6.0-preview2: 53.3 fps - 1.62x slower
2.6.0-preview1: 53.0 fps - 1.63x slower
2.5.3: 48.5 fps - 1.78x slower
2.0.0: 34.6 fps - 2.50x slower


  • GCC
  • Clang
  • Microsoft Visual C++



  1. C compiler is replaced to an arbitrary binary
  2. C header files or libraries are replaced
  3. Another user’s program on the same server overwrites C code to be JIT-ed


  • Inline Ruby methods as further as possible to avoid loading code or creating a VM frame many times
  • Optimize object allocations which we've not invested so much in JIT so far




Software engineer at Treasure Data.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

WhaleOps is Recruiting! Positions of R&D, Operations, and Human Resource Are Open now

Booknetic vs Bookly PRO

Data Driven Decisions: A Practical Example on Team Management

Usage of Image Resource Files in Android Studio

Algorithm Interview Questions 20

R Language for The Project Management Course — AUG University “part 1”

So You’re Tired of Making Dumb CSS Layouts 😤

How is your team feeling? This is how we find out.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


Software engineer at Treasure Data.

More from Medium

How to (theoretically) learn any programming language in under 3 months

How to Choose a Programming Language?

Creating a Rails plant tips CMS site

Ruby vs Java: Key Differences