Firefox nightly build 中的 JIT 编译性能得到显着提高

В 每晚构建 火狐 切换到 更新了 JIT 编译器, 发达 代号为 WarpBuilder。 为了启用新的 JIT,about:config 中提供了“javascript.options.warp”选项。
值得注意的是,WarpBuilder 只是将新优化纳入浏览器的第一步,计划在明年实施。

新的 JIT 通过减少引擎内跟踪的内部类型信息并使用之前的中间代码缓存 (CacheIR) 技术,提高了 SpiderMonkey JavaScript 引擎的性能 建议的 在“基线”字节码解释器中,它占据了常规解释器和预 JIT 编译器之间的中间位置。 这些变化使得显着简化 JIT 架构、提高响应能力、减少页面加载时间并减少内存消耗成为可能。

注意新的 JIT 解决了旧的 JIT IonBuilder 的许多问题,例如:

  • 实施的复杂性和潜在的安全问题;
  • 基线/C++ 代码的额外开销;
  • 过度专业化导致不必要的重新编译;
  • 生成中间代码 MIR (中间层IR)在主线程中(在WarpBuilder中,中间代码的主汇编被放置在单独的线程中);
  • 用于存储有关类型和对象组 (ObjectGroup) 的数据的额外内存消耗。

平均而言,在基于视觉指标评估性能的测试中,使用 WarpBuilder 时观察到 5-15% 的加速。 车速表测试完成率提高了 10%。 在真实网站上的测试表明,Google 文档加载时间缩短了 20%, 指数 速度指数 在 Reddit 上打开 Android 部分时改进了 13%, pdfpaint 开始更快地工作 18%。 测试中的内存消耗 tp6 下降了8%。 指标 开发者工具(devtools perf)的统计数据也显示内存消耗减少了 8%。

来源: opennet.ru

添加评论