Firefox如何提高其JavaScript性能

2020-11-23 01:08:04

Firefox用户可以期望在Firefox 83浏览器中提高JavaScript性能,默认情况下启用对SpiderMonkey JavaScript引擎的Warp更新。

Warp也称为WarpBuilder,它通过对JiT(即时)编译器进行更改来提高响应速度和内存使用率,并加快页面加载速度。优化JiT已更改为仅依赖于CacheIR简单线性字节码格式,尤其是由基线层收集的CacheIR数据。浏览器中利用的新架构还被描述为更具可维护性,并解锁了SpiderMonkey的其他改进。

Firefox 83已于10月20日发布于测试版,并计划于11月17日发布。经证明,Warp的速度比SpiderMonkey先前优化的JiT Ion快,其中Google Docs的加载时间缩短了20%。其他JavaScript密集型网站(例如Netflix和Reddit)也已显示出改进。

基于CacheIR的Warp支持在整个引擎中删除代码,这些代码是跟踪IonBuilder使用的全局类型推断数据所需的,从而提高了速度。尽管IonBuilder和WarpBuilder都生成了Ion MIR,这是优化的JiT后端使用的中间表示形式,但IonBuilder具有很多WarpBuilder不需要的复杂代码。 Warp还可以在线程外执行更多工作,并且不需要重新编译。计划要求对Warp进行持续优化,目前在某些合成基准上,该速度比Ion慢。

Warp取代了IonMonkey JiT的前端(MIR构建阶段)。计划要求删除旧的代码和体系结构,这很可能会在Firefox 85中发生。因此,有望实现其他性能和内存使用方面的改进。 Mozilla还将继续逐步优化IonMonkey JiT的后端,因为Mozilla认为JavaScript密集型工作负载仍有改进的空间。 Web开发人员和Mozilla也正在开发一种工具,用于探索CacheIR数据以实现JavaScript功能。