Engineering, operations & design history
Startup performance — September 20, 2026
Full repository source: docs/startup-performance-20260920.md
Technical documentation includes historical decisions, proposals and verification reports. For playing instructions and practical rules, open Gameplay.
No matching entry. Try a shorter phrase or clear the search.
Startup performance — September 20, 2026
The main bottleneck was creating every production hex and biome region on the browser's main thread. The new worker prepares exact compact presentation data while the client starts with a globe preview and materializes detailed cells on demand. A versioned IndexedDB entry avoids repeating preparation on later visits. The simulation, generation-6 geography and saves are unchanged.
Measured with the repository's headless Edge harness against a local server, at 1440 × 1000, DPR 1, without CPU or network throttling. Baseline is commit 6224880d. These are individual observed runs, not guaranteed production or phone timings. Raw summary: startup-performance-20260920.json startup-performance-20260920.json.
| Measurement | Before | After |
|---|---|---|
| Rendered globe preview | Not separately measured | 0.73 s |
| Full globe / regional data ready, cold load | 11.71 s | 5.50 s |
| Full readiness on a cached reload | Not measured | 0.33 s |
| Longest main-thread startup task | 9.81 s | 0.34 s |
| Materialized hex objects at Global readiness | 2,252,800 | 31 |
The cold run reports about 52 MiB of JavaScript heap. This excludes some browser, GPU and backing-store allocations and is not a total-memory claim. The object cache allows 32,768 entries for visited areas; natural cells can be reconstructed after eviction. Region preparation retains double precision and the original flood-fill order so art profiles and geography do not change.
Validation:
- The final full 785-test suite passed, including denied-storage recovery and the unobstructed-globe projection regression.
- Byte-identical canonical values, planet fields, region membership/averages, place selection and reconstructable evicted cells are checked. Art-review fixtures explicitly retain their original synchronous path.
- Browser checks pass Global/Region/Hex navigation, wheel and pinch zoom, responsive controls at 320–1440 px, unchanged selection, repeat-load cache hits, and worker-less fallback with a queued regional request. No application exceptions were observed.
- Asynchronous Brotli/gzip delivery passes the existing integration coverage.
- The performance harness now records cold/warm readiness, preview rendering, materialized-cell count, heap and main-thread blocking. Optional
PERF_CPU_PROFILEwrites a drag CPU profile for diagnosis.
The existing 1.8-second cold full-readiness budget still fails at 5.50 seconds; it has not been relaxed or relabeled as preview readiness. The final run passes the other existing budgets, including interaction frames and regional composition. The remaining cold cost is background generation and texture preparation; GPU initialization and device speed also affect the first rendered preview. Physical-device and throttled-network certification remain outstanding.
Architecture and current design status: Living world design.