针对 Speedometer 3.0 优化 WebKit 和 Safari

主要观点:Speedometer 3.0 的引入是让网络更快的重要一步,WebKit 团队基于此基准进行了性能优化,包括改进工具、JavaScriptCore、JSON、内联启发式、JIT 代码销毁、机会性清扫和垃圾收集、DOM 代码、布局和渲染以及 Safari 等方面。
关键信息

  • 利用性能测试基础设施进行改进,定义新的 JSON 格式和工具来处理性能瓶颈。
  • 修订 Megamorphic Inline Cache 和 Call IC 以提高函数调用性能。
  • 优化 JSON 处理,调整内联启发式,使 JIT 代码销毁更懒。
  • 引入新机制进行机会性清扫和垃圾收集,提高 Speedometer 性能。
  • 对 DOM 代码、布局和渲染等方面进行多处优化。
  • 在 Safari 中优化 AutoFill 代码,进行配置文件引导优化。
    重要细节
  • 工具改进方面,定义新 JSON 格式用于输出和处理,添加 FlameGraph 生成工具,支持 JITDump 生成等。
  • JavaScriptCore 改进包括修订 Megamorphic IC、Call IC、优化 JSON、调整内联启发式、使 JIT 代码销毁懒等。
  • 机会性清扫和垃圾收集方面,在渲染更新间进行工作,提高性能。
  • DOM 代码改进如存储 NodeType、优化 DOMParser 等。
  • 布局和渲染方面在多个方面进行优化,如改进样式引擎、内联布局、SVG 布局、IOSurface 缓存命中率、减少 GPU 进程等待时间、改进合成等。
  • Safari 优化中 AutoFill 代码等待页面内容稳定以提高性能。
  • 配置文件引导优化与代码更改相互作用,有时需等待更新才能体现效果。最终 Safari 17.4 在 Speedometer 3.0 上比 Safari 17.0 提高约 60%,在 Speedometer 2.1 上比 Safari 17.0 快约 13%。
阅读 11
0 条评论