Nova - Un moteur JavaScript & WebAssembly écrit en Rust
(github.com/trynova)- Nova est un moteur JavaScript caractérisé par une conception orientée données, avec une architecture pensée pour maximiser les performances et l’efficacité du cache
- Il vise à la fois la prévention des vulnérabilités mémoire et l’optimisation des performances
- Principales caractéristiques :
- Toutes les données allouées sur le tas JavaScript sont stockées dans des vecteurs par type (les nombres dans un vecteur de nombres, les chaînes dans un vecteur de chaînes, etc.).
- Les références du tas sont gérées comme des index distingués selon le type, ce qui offre sûreté mémoire et efficacité en taille.
- Les objets sont stockés dans des vecteurs séparés par type (objets généraux, tableaux,
DataView, etc.). - Les objets non généraux sont conçus pour ne référencer les données d’objet général qu’en cas de besoin.
- Les objets sont stockés de manière fortement découplée afin d’éviter la lecture de données inutilisées.
- Le projet est encore en cours de développement. Le moteur reste très limité en fonctionnalités et ne réussit qu’environ 47 % de la suite de tests test262
1 commentaires
Avis Hacker News
function X(a) { this.a = a; }etfunction Y(b) { this.b = b; }sont considérées comme des objets de types différents{a: 1}et{b: 2}sont considérés comme des objets de types différents