V8 JavaScript 引擎 6.8 发布 改进内存占用

DouKeKe 2018-06-25

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

内存

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

V8 JavaScript 引擎 6.8 发布 改进内存占用

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

V8 JavaScript 引擎 6.8 发布 改进内存占用

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

性能

  • 数组解构改进
  • Object.assign 改进
  • TypedArray.prototype.sort 改进

V8 JavaScript 引擎 6.8 发布 改进内存占用

WebAssembly

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

相关推荐