talking ruby gvl, scheduling and performance on the dead code podcast
I’m pretty happy that I got to go on the Dead Code podcast. In this episode, we discussed how the Ruby Global VM Lock (GVL) got to be and why it’s needed, went deep into scheduling — how to tweak how much time Ruby gives each thread; how M:N scheduling changes the behavior of threads in Ruby; and how Ruby may need a full scheduler and why.
We also discuss how tools such as gvl-tracing can be used to identify performance bugs (including in Ruby itself!), the direct-bind
gem I recently created, and how it’s amazing people are starting to forget that Ruby is "supposed" to be slow and actually there’s been great progress in improving performance.
You can download the episode as an mp3 or listen to it online:
As always, feedback is welcome!