The Curious Engineer

All blogs / Ruby / Rails

Peter Zhu

blog.peterzhu.ca

Peter's personal blog mostly about programming and sometimes other stuff.

Ruby / RailsCPerformance / optimization

Posts
30 from 21 Aug 2020 to 1 Sep 2026
Posting
now and then (1 in the last year)
Kind
personal blog
Feed
https://blog.peterzhu.ca/feed.xml

2026 1

  1. ZJIT 🤝 GC: Inlining GC Fastpath in ZJIT

2025 3

  1. Open Source is the Most Fragile and Most Resilient Ecosystem
  2. Reworking Memory Management in CRuby
  3. Implementing Embedded TypedData Objects

2024 2

  1. Finding Memory Leaks in the Ruby Ecosystem
  2. Autotuner: How to Speed Up Your Rails App

2023 5

  1. A Rubyist’s Walk Along the C-side (Part 11): Debugging
  2. Two Garbage Collection Improvements Made Our Storefronts 8% Faster
  3. Garbage Collection in Ruby
  4. Open Sourcing Shopify’s Ruby Builds
  5. A Rubyist’s Walk Along the C-side (Part 10): Benchmarking

2022 3

  1. Optimizing Ruby’s Memory Layout: Variable Width Allocation
  2. A Rubyist’s Walk Along the C-side (Part 9): Circular Buffer Project
  3. A Rubyist’s Walk Along the C-side (Part 8): Exceptions & Error Handling

2021 11

  1. rb_gc_force_recycle is Deprecated in Ruby 3.1
  2. A Rubyist’s Walk Along the C-side (Part 7): TypedData Objects
  3. How ruby_memcheck Finds Memory Leaks in Native Gems
  4. To Free or Not to Free: A Story About a Memory Leak in Strings
  5. A Rubyist’s Walk Along the C-side (Part 6): Classes & Object Oriented Programming
  6. A Rubyist’s Walk Along the C-side (Part 5): Variables
  7. A Rubyist’s Walk Along the C-side (Part 4): Primitive Data Types
  8. A Rubyist’s Walk Along the C-side (Part 3): Calling Methods
  9. A Rubyist’s Walk Along the C-side (Part 2): Defining Methods
  10. A Rubyist’s Walk Along the C-side (Part 1): Hello World!
  11. A Rubyist’s Walk Along the C-side

2020 5

  1. 1.5 is the Midpoint Between 0 and Infinity in Ruby
  2. The Ruby Inplace Bug
  3. Creating Ruby Strings in C
  4. Garbage Collection in Ruby 3.0
  5. Tips and tricks in MRI Ruby development