V8 JavaScript 引擎获得了急切编译提示,但开发者会如建议的那样谨慎使用吗?• DEVCLASS

主要观点:

  • 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 初始论文提及可能检测过度使用但此次未提及相关策略。
阅读 18
0 条评论