V8 Hidden Classes

JavaScript 🔴 Senior

Définition

Structure interne de V8 pour optimiser l'accès aux propriétés. Les objets avec la même forme (mêmes propriétés, même ordre) partagent une hidden class, permettant un accès rapide.

Analogie

Des formulaires pre-imprimes identiques : si tout le monde remplit les mêmes champs dans le même ordre, le traitement est ultra rapide.

Exemple de code

// Meme hidden class (optimise)
function Point(x, y) { this.x = x; this.y = y; }
const p1 = new Point(1, 2);
const p2 = new Point(3, 4);
// Hidden class differente (desoptimise)
const a = {}; a.x = 1; a.y = 2;
const b = {}; b.y = 2; b.x = 1; // ordre different!

Cas d'usage

Écrire du code monomorphique pour maximiser les optimisations JIT de V8.

Anti-pattern

Ajouter des propriétés dynamiquement dans un ordre différent ou supprimer des propriétés avec delete.
#core#engine#performance

← → au clavier pour passer d'une fiche à l'autre