All numbers below are from a local bundler-bench run (rails scenario, 164 gems, macOS ARM64, Ruby 4.0.1, local gem server, hyperfine median of 3 iterations). Raw JSON for all 72 runs is available upon request.
A note on terminology: the benchmark's cold run wipes everything (vendor, .bundle, all caches, lockfile). Its warm run wipes only vendor/bundle and .bundle — the download cache, global extracted cache, and lockfile are preserved. From a project's point of view a "warm" run is a fresh project install that hits a populated system cache, which is the most common day-to-day scenario (re-bundling after a Gemfile change, CI with cache restore, switching branches, etc.). Throughout this review, "warm" means that scenario.
- Of the nine optimization groups in this PR, five are neutral on macOS (within benchmark noise of master, ±5%). They neither help nor hurt.
- **Two groups (the
Source::Rubygems+RubyGemsGemInstallerrework) account for 100% of the measured per