Monthly Presentation Night

Boulder Ruby Group
Boulder Ruby Group
Public group

Online event

This event has passed


Join us at our monthly gathering where we present topics of interest to Rubyists and aspiring programmers.

We'll start the zoom meeting at 5:30pm, where you can hangout and socialize with other Boulder Ruby members.

At 6:30, we do announcements before getting to our presentations.

Talk 1: A talk by Aaron Patterson from Shopify

Details from Aaron!

# Title: Don't @ me! Instance Variable Performance in Ruby

## Abstract:

How do instance variables work? We've all used instance variables in our programs, but how do they actually work? In this presentation we'll look at how instance variables are implemented in Ruby. We'll start with a very strange benchmark, then dive in to Ruby internals to understand why the code behaves the way it does. Once we've figured out this strange behavior, we'll follow up with a patch to increase instance variable performance. Be prepared for a deep dive in to a weird area of Ruby, and remember: don't @ me!


In this presentation I'm going to cover how instance variables work in Ruby. I'm going to cover the data structures used for storing instance variables, including inline caches, etc. Part of this presentation will cover basic Ruby program compilation so that the audience will understand where inline caches are stored and how they are used.

Finally I'm going to cover patch that increases instance variable performance in some cases.


This talk will be a fairly detailed talk about the internals of the Ruby interpreter. As I mentioned, we will cover compilation processes, inline method caches, as well as the data structures and algorithms used for dealing with instance variables.

I am qualified to talk about this topic because I wrote the patch I'll be speaking about! The patch is already committed, so people can see the code too.

Bio: Aaron is a Rails and Ruby core contributor

If you would like to present at this meeting, or at upcoming events, reach out to the organizers on this meetup or ping us at @boulderruby ( on Twitter.