选题讨论
Status: SUSPENDED
目前全组成员经过讨论,初步确定选题为:
- 对 Rust 编写的 JS 引擎 Nova 进行完善和性能优化。预期可以比目前唯一的 Rust 编写的 JS 引擎 Boa 快 30% 以上。
- 编写基于 Nova 的 JS 运行时的 event loop 和 fs 部分
选题依据
- JavaScript 是目前最流行的编程语言之一,且在浏览器等环境下没有与之竞争的语言。
- GNOME Shell 使用 JS 编写,而 Chrome OS 也高度依赖执行 JS 的能力。JS 引擎的发展对于操作系统自身的发展有着重要的意义。
- 虽然 V8 等成熟引擎已经足够 (内存) 安全,但 Rust 编写的 JS 引擎可以更好地和 Rust 生态结合,从而实现整体的安全性提升。
- Nova 作为轻量级的引擎,相比 V8 更适合在一些嵌入式场景中使用。
- Nova 包含了一些对 JS 引擎的创新设计,比如使用 index 而非 compressed pointer 等,因此即使性能无法超过 V8,仍然有很高的积极意义。
选题缺陷
- 由于 V8 已经投入了大量的人力进行了长时间的开发,没有其他引擎能够比肩其性能,包括 Nova。上述 4. 5. 说明了在这种情况下 Nova 的价值。
- Node / Deno / Bun,尤其是 Bun,均已在 JS Runtime 上进行了大量的优化,已经拥有极高的性能,我们大概率无法在规定时间内超越它们(比如对于 fs 模块)。因此在性能上超越他们不是我们的目标。