Ivo Anjo
Ivo Anjo

I love to work on Ruby performance and that's how I ended up at Datadog where I'm building a new production open-source Ruby profiler for the ddtrace gem. I believe in bringing profiling to the masses: profilers should be easy to use and understandable by everyone, and I'm working hard on delivering this vision.

Understanding the Ruby Global VM Lock by observing it

The Global VM Lock (GVL), also known as Global Interpreter Lock (GIL), is an implementation detail of the CRuby VM. At a high-level, it prevents Ruby code across multiple threads from running in parallel (while still allowing concurrency!).

The GVL is an extremely important implementation detail, as it can have a big impact on the performance and responsiveness of any Ruby application that uses more than a single thread to do its work.

In this talk, I explore what the GVL is, why it is no longer called global VM lock, its impact on Ruby applications and how we can see it in action by using the GVL instrumentation API through the gvl-tracing and gvltools gems.

Presentation Material

Recorded video