Benchmark: macOS packaging cache reuse - #15
Conversation
e1376c4 to
280b293
Compare
a483f77 to
60d7c62
Compare
|
Final benchmark result (run 32717716227):
Against the comparable full-Mode-5 run (Ubuntu 215s, macOS 420s), this keeps Ubuntu effectively flat (+2s) and reduces macOS by 117s. The packaging gap shrinks from 205s to 86s. The decisive evidence was the old direct-CMake mode: Ubuntu reused 280 runtime objects and missed 29, while macOS reused only 17 and missed 291. The smoke only imports Rejected experiments are preserved in earlier workflow runs: strict CPU budgeting and forced compiler propagation both regressed at least one platform and were removed from the final commit. |
60d7c62 to
e420aa2
Compare
Full-coverage benchmark (commit e420aa2)\n\nBoth packaging jobs passed with all five modes intact, including Mode 5's default full CMake target.\n\n| Runner | Full-mode baseline | This change | Difference |\n| --- | ---: | ---: | ---: |\n| Ubuntu | 218s | 218s | 0s (0%) |\n| macOS | 422s | 230s | -192s (-45.5%, 1.83x faster) |\n\nThe baseline is run 32715165170, before compiler identity was unified and while Mode 5 still built the full default target. The new result is run 32724346814.\n\nThis confirms the optimization is macOS-specific in impact but platform-neutral in implementation: it restores cross-mode ccache reuse without branching on the OS, dropping modes, narrowing runtime targets, or changing smoke coverage. |
e420aa2 to
f273e91
Compare
|
PR base cleanup: the fork's main has been fast-forwarded to upstream a7510ca, and the feature commit was republished as f273e91 with identical content. The PR now contains one commit and three files only. The benchmark from e420aa2 remains applicable because the source tree for this change is identical; CI is rerunning for the refreshed commit. |
|
Final personal-fork benchmark passed for the changed jobs on a40d84e:
Tradeoff: splitting profiling removes serial latency but uses two runners. Their combined wall time is about 464s, versus 375-436s for the old single job, so this optimizes feedback latency rather than total runner consumption. Run: https://github.com/doraemonmj/simpler_wc/actions/runs/32729558657 |
Single-job simulator-context reuse benchmarkTested reusing the first
Reuse was 4.5s (1.4%) slower at the median. The distributions overlap and the difference is far below normal hosted-runner variance, so this optimization has no measurable benefit. The reuse implementation was removed in |
8cd5249 to
c18ccf2
Compare
9e65240 to
33237b9
Compare
|
Benchmarking is complete. The branch has been reduced to the validated macOS packaging compiler-identity change and will continue as a formal upstream PR. Closing this personal-fork PR avoids duplicate CI; its benchmark runs and discussion remain as supporting evidence. |
Purpose
Personal-fork benchmark for packaging compiler identity, ccache reuse, and rejected profiling experiments. This PR exists as performance evidence and is not a merge target.
Final packaging result
Clean-head jobs: Ubuntu, macOS.
Status
Benchmark complete and PR closed. The cleaned, single-commit change is proposed upstream in hw-native-sys/simpler#2010. Historical comments and runs remain here to document discarded alternatives.