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.

Current prepared bind + LINK · wall time · medians in milliseconds
ObservationMedian (ms)Samples
Warm bind + LINK5.42424
First-use bind + LINK78.5713

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.

Separately measured warm phases · wall time
PhaseMedian (ms)Samples
Borrowed-child bind0.44124
LINK after bind4.99024

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.

Targeted wall-time medians · milliseconds · reference → candidate
Machine / intervalReferenceCandidateSamples/version
Mac first-use bind + LINK80.66377.0892
Mac warm bind + LINK5.7534.72016
Windows MSI warm LINK only10.91337.968616

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.