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