Editor

Performance budgets

EditorPreview

Editor docs

The editor has three performance budgets: open a 5,000-entity scene in under two seconds, paint a 100,000-cell tilemap at interactive rates, and refresh the Inspector within a frame. A headless benchmark in the editor's repository checks them. The editor is a preview.

The budgets and the numbers#

Medians, measured on 3 November 2026 on an Apple M1 with 16 GB (macOS, Node 26), as ranges over four runs while other builds were running:

MeasurementMedianBudget
Open a 5,000-entity scene, up to the Hierarchy55–142 ms2,000 ms
A second window attaches to the open scene25–56 ms—
Paint 1,000 cells of a 100,000-cell tilemap0.6–1.1 ms16 ms
Undo of that paint0.4–0.6 ms16 ms
Fill all 100,000 cells, apply and undo12–23 ms—
Refresh the Inspector for 20 components0.5–0.8 ms16 ms

Every budget passes with at least ten times to spare. The Tilemap panel also now redraws only the cells a stroke paints while you drag, not the whole map.

How it is measured#

pnpm bench:budgets, in the editor's repository, runs the editor's real modules with no Electron: the main process's scene document, the window's copy of it over a stand-in for IPC that copies as IPC does, the Hierarchy's rows, the tilemap store and history, and what the Inspector computes on a render. Each measurement runs once to warm up and five times to measure; the script prints the medians and fails when one is over its budget. It is not part of the editor's regular checks.

Not measured yet#

  • What Electron adds: real IPC, React rendering of the Hierarchy and the Inspector, and the scene view loading the scene.
  • The tilemap canvas in a browser. A long stroke still redraws every cell it has painted so far.
  • Filling a whole 100,000-cell map takes more than a frame, because both the main process and the window apply it; it has no budget.