Ruby 3x3 Optimization Ideas

  • make the garbage collector use an established API, so we can change it out more easily with a gem. This would permit trying out new garbage collector implementations more easily. Suggested by Koichi.

  • use per-class counter for method cache invalidation so that defining a new method won't invalidate all the method caches. Suggested based on a post by Aaron Patterson.

  • Per-class method cache. Maybe per-class/subclass counter instead of just one globally.

  • Shyouhei's branch is identifying certain statements as not having side effects. Perhaps we can eliminate the evaluation of an ||= right-hand side in some cases?

  • $LOAD_PATH pre-scan like Shopify's BootSnap - good for large applications with hundreds of gems in the path.