V8 JavaScript 引擎 6.8 已發(fā)布,包含許多面向開發(fā)者的新特性,亮點包括: 內(nèi)存 JavaScript 函數(shù)不必要地保留外部函數(shù)及其元數(shù)據(jù)(稱為 SharedFunctionInfo 或 SFI ),可能會導致偽內(nèi)存泄漏。 在 V8 6.8 版本之前,活動上下文(active Context)會讓創(chuàng)建上下文的函數(shù)的 SFI 保持活動狀態(tài):
通過讓 Context 指向包含調(diào)試所需的精簡信息的 ScopeInfo 對象,V8 6.8 打破了對 SFI 的依賴關(guān)系。這也帶來了近 3% 的 V8 內(nèi)存占用改進。
與此同時,減少了 SFI 本身的內(nèi)存消耗,刪除不必要的字段或盡可能壓縮它們,將其大小減少了大約25%,未來版本還將進一步降低。
性能
數(shù)組解構(gòu)改進
Object.assign 改進
TypedArray.prototype.sort 改進
WebAssembly
V8 v6.8 支持在 Linux x64 平臺上使用 trap-based bounds checking 。這種內(nèi)存管理優(yōu)化大大提高了 WebAssembly 的執(zhí)行速度。它已在 Chrome 68 中使用,未來會逐漸支持更多平臺。
V8 API
請使用 git log branch-heads/6.7..branch-heads/6.8 include/v8.h 來獲取 API 變更列表。
更多細節(jié)可查閱:
https://v8project.blogspot.com/2018/06/v8-release-68.html