Composition benchmarks
Prepared composition: static constituents, dynamic boundary
This separate October 8 Mac study uses GLRMask f9f5c84, Rust 1.95 release opt3,
target-cpu=native, ten Rayon threads and an internal measurement driver.
The parent is the retained ordinary compile_unlinked parent from the Static run;
the child is the retained FAST_RUNTIME static child. Final linking independently
selects a FAST_BUILD dynamic boundary. The immutable bind borrows the child;
it does not include a caller-owned core clone.
| Observation | Median (ms) | Samples |
|---|---|---|
| Warm bind + LINK | 5.424 | 24 |
| First-use bind + LINK | 78.571 | 3 |
Three fresh processes each retain the first-use observation separately, then perform eight warm bind + link observations. The first-use median is not an end-to-end cold build measurement: constituent BUILD and total preparation were not rerun. START and first-mask timings are separate. Continuous TTFM is unknown and is not inferred by adding phase timings.
| Phase | Median (ms) | Samples |
|---|---|---|
| Borrowed-child bind | 0.441 | 24 |
| LINK after bind | 4.990 | 24 |
The historical 5da983756 dynamic-boundary whole-LINK warm median is
3.971 ms over 24 observations.
Its timer includes an owned core clone and historical LR composition; the current bind + LINK timer includes normal immutable binding and deferred metadata.
APIs and compiled graphs differ, so these descriptive values do not establish a paired speedup or regression.
The earlier FastBuild result used an O2 child and is a different constituent tuple.
The follow-up reports zero failures. Full masks, completion and committed tokens were checked against the historical canonical fixture at 11,767 positions per process; SAVE/LOAD and table-free checks passed. This fixture check does not qualify every grammar or the full JSONSchemaBench population.
Targeted ownership-candidate comparison
This October 8 same-fixture production-profile study compares f9f5c84 with ownership candidate 03eb3ee, subsequently included in the unpublished combined 0.2.0 candidate. Static parent/child constituents, a borrowed child and the dynamic boundary are matched within each machine. Rust 1.95 release opt3/native, internal API and ten Rayon threads are retained. Fixed A/B/A/B uses two fresh processes per version, eight warm links per process; first use is separate.
| Machine / interval | Reference | Candidate | Samples/version |
|---|---|---|---|
| Mac first-use bind + LINK | 80.663 | 77.089 | 2 |
| Mac warm bind + LINK | 5.753 | 4.720 | 16 |
| Windows MSI warm LINK only | 10.9133 | 7.9686 | 16 |
Mac bind + LINK includes immutable binding and deferred metadata; Windows LINK-only excludes the separately timed bind. First use excludes constituent BUILD. These are separate machine results, not a new full benchmark sweep or a runtime speedup. Full-mask, commit, completion and saved/reloaded checks passed for the retained 11,767-position fixture.
The original comparison included adverse LOAD and tail spikes. One bounded A/B/A/B repeat found no stable aligned regression; it does not prove universal nonregression. Background Mac system activity was observed and the exact cause of the spikes is unproven.