主要观点:
- V8 JavaScript 引擎有新特性,可让开发者标记文件进行提前编译,适度使用对加载时间有好处。
- 在[Chrome 136]中可使用“魔法注释”
//# allFunctionsCalledOnLoad
指示 V8 加载时立即解析和编译文件,此为 eager 编译,未标记的文件编译可能会延迟。 - 实验表明 20 个热门网页中有 17 个性能提升,平均减少 630ms 前台解析和编译时间,初始加载时间对响应性很关键。
- 可通过记录函数事件来测试特定情况,目前该特性仅适用于完整文件,长期计划是能选择单个函数,建议创建含关键代码的核心文件并标记为 eager 编译。
- 该特性已进行两年多,2023 年 4 月的论文解释了 explicit compile hints 可覆盖 PIFE 启发式,PIFE 有缺点且新特性存在过度使用的问题,开发者对此反应不一,Google 称可能会检测过度使用情况但此次初始推出未提及相关策略。
关键信息:
- V8 被 Chrome 等使用,新特性可标记文件提前编译。
- Chrome 136 可使用“魔法注释”。
- 实验结果显示多数网页性能提升。
- 可通过记录函数事件测试,长期计划选单个函数。
- 特性已进行两年多,有相关论文解释,存在过度使用问题及开发者不同反应。
重要细节:
- eager 编译在后台线程,延迟编译在主线程影响性能。
- Google 软件工程师 Marja Hölttä 解释相关内容。
- 初始加载时间对感知响应性重要。
- 关于过度使用的风险及两种编译方式的好处。
- 开发者反应包括认为并行化好及担心提示被滥用等。
- Google 初始论文提及可能检测过度使用但此次未提及相关策略。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。