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