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

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

内存

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

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

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

性能

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

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 变更列表。

更多细节可查阅:

  • 发表于:
  • 原文链接https://www.oschina.net/news/97304/v8-68-released
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券