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.

Optimizing Ruby: Building an Always-On Production Profiler

In certain online circles, Ruby has a reputation for """being slow""" (very vigorous air quotes). I don’t think this is true; often applications are slow because they are doing a lot more work than expected or intended. It's easy to write innocent-looking code that is actually using expensive abstractions.

The Ruby 3 series has seen amazing advances in performance. What if, in addition to these advances, we don't have to run as much code? Have you heard the saying "The fastest code is the code which does not run"?

This is where a profiler comes in: A profiler lets you see where cpu, time, memory and other resources are being spent, and thus can be used to pinpoint exactly why an application is slow, and it’s doing.

In this talk, I explore how Datadog’s ddtrace open-source profiler works: what’s needed to build a profiler that can be always on, why use sampling, what sources of data the Ruby VM provides, and how you can investigate your Ruby applications with it.