Nova - in Rust geschriebene JavaScript- & WebAssembly-Engine
(github.com/trynova)- Nova ist eine JavaScript-Engine mit datenorientiertem Design und verwendet eine Architektur, die darauf ausgelegt ist, Leistung und Cache-Effizienz zu maximieren
- Sie zielt zugleich auf die Vermeidung von Speicherlücken und auf Performance-Optimierung ab
- Hauptmerkmale:
- Alle im JavaScript-Heap allokierten Daten werden in typspezifischen Vektoren gespeichert (Zahlen im Zahlenvektor, Strings im String-Vektor usw.).
- Heap-Referenzen werden als nach Typ getrennte Indizes verarbeitet, was Speichersicherheit und Größeneffizienz bietet.
- Objekte werden nach Typ getrennt und in Vektoren gespeichert (gewöhnliche Objekte, Arrays, DataView usw.).
- Nicht-gewöhnliche Objekte sind so konzipiert, dass sie nur bei Bedarf auf Daten gewöhnlicher Objekte verweisen.
- Objekte werden aggressiv getrennt gespeichert, um das Lesen ungenutzter Daten zu vermeiden.
- Befindet sich noch in Entwicklung. Die Engine ist funktional noch stark eingeschränkt und besteht derzeit nur etwa 47 % der test262-Testsuite
1 Kommentare
Hacker-News-Kommentare
function X(a) { this.a = a; }undfunction Y(b) { this.b = b; }als unterschiedliche Objektarten betrachtet werden{a: 1}und{b: 2}als unterschiedliche Objektarten betrachtet werden