aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts/bench/require.sh
AgeCommit message (Collapse)Author
2026-08-20perf(repository): take ownership of the decoded provider JSONnsfisis
startCachedAsyncDownload's cached branch decoded the provider JSON into an owned value and then rebuilt it entry by entry, recursively cloning every package definition only to drop the original. Match the decoded value by value instead. PHP hands the decoded array to the closure by COW, so no copy happens there either. laravel/framework require --no-install (warm cache, network disabled): instructions:u 10276126917 -> 9884102191 (-3.8 %) cycles:u 5048262624 -> 4777881212 (-5.4 %) wall (hyperfine, 20 runs) 1.345 s +- 0.015 s -> 1.316 s +- 0.018 s (-2.2 %) monolog/monolog is unchanged (100.7 ms -> 101.7 ms, within noise). composer.lock is byte-identical for both packages. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-23fix(bench): pin composer binary and work around HTTP/3 slowdownnsfisis
Benchmarks were comparing against whatever composer happened to be on PATH instead of the pinned submodule version, and paid the HTTP/3 fallback penalty from composer/composer#12987 on every packagist request.
2026-07-18perf: add require --no-install benchmark scriptnsfisis
Lighter-weight companion to scripts/bench/create-project.sh: compares shirabe vs composer on dependency resolution alone (require --no-install --no-audit), skipping the download/install step that dominates create-project's runtime.