V8 JavaScript 引擎 6.8 已发布,包含许多面向开发者的新特性,亮点包括:

内存

JavaScript 函数不必要地保留外部函数及其元数据(称为 SharedFunctionInfo 或 SFI ),可能会导致伪内存泄漏。 在 V8 6.8 版本之前,活动上下文(active Context)会让创建上下文的函数的 SFI 保持活动状态:


通过让 Context 指向包含调试所需的精简信息的 ScopeInfo 对象,V8 6.8 打破了对 SFI 的依赖关系。这也带来了近 3% 的 V8 内存占用改进。


与此同时,减少了 SFI 本身的内存消耗,删除不必要的字段或尽可能压缩它们,将其大小减少了大约25%,未来版本还将进一步降低。

性能



WebAssembly

V8 v6.8 支持在 Linux x64 平台上使用 trap-based bounds checking 。这种内存管理优化大大提高了 WebAssembly 的执行速度。它已在 Chrome 68 中使用,未来会逐渐支持更多平台。

V8 API

请使用 git log branch-heads/6.7..branch-heads/6.8 include/v8.h 来获取 API 变更列表。

更多细节可查阅:



新闻来源:V8 JavaScript 引擎 6.8 发布,改进内存占用