In Firefox updated JIT compiler, under the codename WarpBuilder. An option "javascript.options.warp" is proposed in about:config to activate the new JIT.
It is noted that WarpBuilder is just the first step towards incorporating new optimizations into the browser, which are planned to be implemented over the next year.
The new JIT allows for improved performance of the SpiderMonkey JavaScript engine by reducing internal type information tracked within the engine and applying intermediate code caching techniques (CacheIR), previously in the "baseline" bytecode interpreter, which occupies an intermediate niche between a standard interpreter and a ahead-of-time JIT compiler. These changes significantly simplified the JIT architecture, improved responsiveness, reduced page load times, and lowered memory consumption.
, allowing the new JIT to resolve many issues of the old JIT IonBuilder, such as:
- Implementation complexity and potential security issues;
- Additional overhead for Baseline/C++ code;
- Excess specialization leading to unnecessary recompilations;
- Formation of intermediate code (Middle-level IR) in the main thread (in WarpBuilder, the main assembly of intermediate code is moved to a separate thread);
- Additional memory consumption for storing type and ObjectGroups data.
On average, tests assessing performance based on visual metrics show a speedup of 5-15% when using WarpBuilder. The Speedometer test score increased by 10%. Testing on real sites showed a reduction in loading times for Google Docs by , the SpeedIndex , pdfpaint started working faster by . Memory consumption in the tp6 Metrics 🥇In the nightly builds of Firefox, JIT compilation performance has notably increased | ProHoster
Source: opennet.ru
