References — Object Shapes, ICs & JIT
Primary / engine
- V8 — Hidden classes and inline caches (blog) — the canonical explanation of shapes and transition chains.
- Mathias Bynens, JavaScript engine fundamentals: Shapes and Inline Caches — the best single article on this topic.
- Mathias Bynens, Elements kinds in V8 — element-kind lattice and one-way transitions.
- V8 — Sparkplug, Maglev, TurboFan — the tiering story.
- V8 — Ignition interpreter
Measurement method
- Chrome for Developers — Performance panel reference
tachometer— statistically rigorous browser microbenchmarking, if you need real confidence intervals rather than medians.- Aleksey Shipilëv, JMH and the anatomy of a microbenchmark — JVM-focused and the best writing anywhere on why microbenchmarks lie. Every failure mode in
docs/measured-results.mdappears here first.
Counterweight — read these alongside
- Donald Knuth, Structured Programming with go to Statements (1974) — the actual "premature optimisation" passage, including the 3% it is usually stripped from.
- web.dev — Optimize long tasks — where frontend time really goes.
- Paul Irish, What forces layout / reflow — the 4,200 ns line item in the perspective table.
Deliberately excluded
"JavaScript performance tips" listicles. They propagate property-order folklore (measured: 1.14×)
while omitting delete (measured: 11.9×), and none of them price their advice against a forced
layout. The perspective experiment exists specifically to inoculate against this genre.