Nova - Rust में लिखा गया JavaScript & WebAssembly इंजन
(github.com/trynova)- Nova एक JavaScript इंजन है जिसकी खासियत data-oriented design है, और यह performance व cache efficiency को अधिकतम करने के लिए तैयार की गई संरचना अपनाता है
- memory vulnerabilities को रोकने और performance optimization, दोनों को साथ में हासिल करने की कोशिश
- मुख्य विशेषताएँ:
- JavaScript heap में allocated सभी डेटा type-specific vectors में store होते हैं (numbers number vector में, strings string vector में आदि).
- heap references को type के अनुसार विभाजित indices के रूप में handle किया जाता है, जिससे memory safety और size efficiency मिलती है.
- objects को type के अनुसार अलग करके vectors में store किया जाता है (general objects, arrays, DataView आदि).
- non-general objects को इस तरह design किया गया है कि वे केवल जरूरत पड़ने पर general object data को reference करें.
- objects को इस तरह aggressively separate करके store किया जाता है कि unused data reads से बचा जा सके.
- अभी development में है. इंजन की functionality अभी बहुत सीमित है, इसलिए यह test262 test suite का लगभग 47% ही pass करता है
1 टिप्पणियां
Hacker News राय
function X(a) { this.a = a; }औरfunction Y(b) { this.b = b; }को क्या objects के अलग kind माना जाएगा?{a: 1}और{b: 2}को objects के अलग kind माना जाएगा?