DouKeKe 2018-06-25
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 中使用,未来会逐渐支持更多平台。