Un article qui vulgarise très bien le pipeline d'exécution du code source Javascript par V8.
C'est sensiblement la même chose pour les autres moteurs présents dans Firefox (SpiderMonkey) et Safari (JavaScriptCore).
(Merci Alex pour le partage)
Un document interne technique la manière d'optimiser la destructuration d'array qui est massivement utilisé dans les React Hook.
C'est intéressant de voir que la destructuration d'objets était plus légère et rapide que la destructuration d'array (64 bytes d'instructions vs 305).
La destructuration d'objet est même plus rapide que de faire:
const array = useState(),
count = array[0],
setCount = array[1];
Ces différences sont très légères et uniquement observées sur le bytecode non optimisé.
Un repo Github ou j'ai rassemblé pas mal de ressources à propos du fonctionnement des moteurs Javascript (principalement v8)
C'est toujours bien de comprendre comment est executé le code que l'on écrit, pour le debuguer plus efficacement mais aussi pour l'optimiser quand on en a besoin !
Au programme:
- Hidden Classes
- Inline Cache
- Closures
- Function Polymorphisme et Mégamorphisme
- Interpreteur et Compilateur spéculatif
- Micro Benchmark
Certains articles sont assez complexes mais en règle général ça reste abordable.
Un article très intéressant sur le fonctionnement interne de v8 (le moteur JS de Node.js et Chrome) qui explique la représentation interne des différents types.
Si le sujet vous intéresse, j'avais compilé des ressources sur le fonctionnement des moteurs Javascript (et particulièrement v8) ici 👉 https://github.com/Aschen/understand-js-runtimes