V8 Hidden Classes

JavaScript 🔴 Senior

Definition

Structure interne de V8 pour optimiser l'acces aux proprietes. Les objets avec la meme forme (memes proprietes, meme ordre) partagent une hidden class, permettant un acces rapide.

Analogie

Des formulaires pre-imprimes identiques : si tout le monde remplit les memes champs dans le meme 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

Ecrire du code monomorphique pour maximiser les optimisations JIT de V8.

Anti-pattern

Ajouter des proprietes dynamiquement dans un ordre different ou supprimer des proprietes avec delete.
#core#engine#performance