“Ideally in a web application, aside from some in-memory caches, no object allocated as part of a request should survive longer than the request itself.”
Shopify’s monolith runs on Ruby’s master branch, so it gets new GC features months before the December release. Disabling major collection during requests and running it between them cut average latency 5% and p99 latency 10% on half the production fleet. The whole feature collapsed into one call, GC.config(rgengc_allow_full_mark: false). The capacity win they hoped for mostly didn’t show up.