Series
The V8 object model
How V8 decides what an object is and how to store it: hidden classes, the transition tree, inline caches, and the deoptimizations that follow from getting any of it wrong.
- Parts
- 3
- Latest
- №01
Runtime and performanceHow V8 Decides to Optimize Your Function
Two functions that look identical can run at very different speeds. The difference is usually shapes, inline caches, and a deoptimization you never saw.
- №02
Runtime and performanceObject Shapes Are a Tree, and the Tree Is Shared
A hidden class is a node in a transition tree V8 keeps for the whole isolate — which is why an unrelated function can decide how your object is stored.
- №03
Runtime and performanceFour Maps Is Polymorphic. Five Is Not.
Monomorphic, polymorphic and megamorphic are counted states with a threshold of four. Here is the transition log, the V8 line that decides it, and the cost.