Measure complete CSS updates and fully cached warm reloads
This commit is contained in:
@@ -311,3 +311,27 @@ plus the source frontend build tag. WebKit does not expose the long-task API.
|
||||
Migration supports `--out` to preserve earlier phase evidence. Existing lazy
|
||||
harness results are copied to `phase4-lazy-2026-10-08.json` after each Phase 4 run
|
||||
and the Phase 3 result is restored. No production requests or deploys are needed.
|
||||
|
||||
## Phase 5 complete measurements
|
||||
|
||||
```bash
|
||||
node --test perf/measurement.test.mjs
|
||||
node perf/baseline.mjs --runs 5 --browser all --profile all --scenario all \
|
||||
--out perf/results/final-2026-10-08.json \
|
||||
--compare perf/results/baseline-2026-10-07.json
|
||||
node perf/lazy.mjs --browser all --out perf/results/phase5-lazy-2026-10-08.json
|
||||
```
|
||||
|
||||
Warm reloads now wait for verified idle asset caching before counters reset and
|
||||
assert that no application asset body transfers. CSS update totals now include
|
||||
activation and the changed inactive stylesheet's verified background cache fill,
|
||||
matching the feature-update boundary. `readyWireBytes`/`readyDuration` retain the
|
||||
blocking readiness snapshot separately. Core updates stop at blocking readiness
|
||||
because app.js is blocking. Every update asserts that the only application asset
|
||||
payload is the edited file; worker script checks/imports and index/manifest count
|
||||
as overhead in the total. Historical Phase 3/4 CSS numbers were readiness only.
|
||||
No product behavior changes are involved in these measurement corrections.
|
||||
|
||||
Keep browser/build/test processes idle during full timing measurements. WebKit's
|
||||
zero long-task field means unavailable, not zero work. Autoplay-blocked/media-ready
|
||||
null results do not establish playback performance or iPhone audio continuity.
|
||||
|
||||
Reference in New Issue
Block a user