De JIT-compilatieprestaties zijn merkbaar verbeterd in nachtelijke builds van Firefox

В nachtelijke opbouw Firefox inbegrepen bijgewerkte JIT-compiler, ontwikkeld codenaam WarpBuilder. Om de nieuwe JIT in te schakelen, is de optie "javascript.options.warp" beschikbaar in about:config.
Opgemerkt wordt dat WarpBuilder slechts de eerste stap is naar het opnemen van nieuwe optimalisaties in de browser, die naar verwachting het komende jaar zullen worden geïmplementeerd.

De nieuwe JIT verbetert de prestaties van de SpiderMonkey JavaScript-engine door de interne type-informatie die in de engine wordt bijgehouden te verminderen en door de eerder gebruikte Intermediate Code Caching (CacheIR)-techniek te gebruiken voorgesteld in de “baseline” bytecode-interpreter, die een tussenliggende niche inneemt tussen een reguliere interpreter en een pre-JIT-compiler. Deze veranderingen maakten het mogelijk om de JIT-architectuur aanzienlijk te vereenvoudigen, de responsiviteit te vergroten, de laadtijd van pagina’s te verkorten en het geheugengebruik te verminderen.

Het is genoteerddat het nieuwe JIT veel problemen van de oude JIT IonBuilder oploste, zoals:

  • Complexiteit van de implementatie en potentiële beveiligingsproblemen;
  • Extra overhead voor Baseline/C++-code;
  • Overmatige specialisatie die leidt tot onnodige hercompilaties;
  • Tussencode genereren MIR (IR op middenniveau) in de hoofdthread (in WarpBuilder wordt de hoofdassemblage van de tussencode in een aparte thread geplaatst);
  • Extra geheugengebruik voor het opslaan van gegevens over typen en groepen objecten (ObjectGroups).

In tests die de prestaties evalueren op basis van visuele statistieken wordt gemiddeld een versnelling van 5-15% waargenomen bij gebruik van WarpBuilder. Het voltooiingspercentage van de snelheidsmetertest is met 10% gestegen. Testen op echte sites lieten een vermindering van de laadtijd van Google Documenten zien 20%, inhoudsopgave Snelheidsindex bij het openen van de Android-sectie op Reddit verbeterd door 13%, pdfpaint begon sneller te werken 18%. Geheugengebruik in de test tp6 daalde met 8%. Indicatoren statistieken in ontwikkelaarstools (devtools perf) lieten ook een vermindering van 8% in geheugengebruik zien.

Bron: opennet.ru

Voeg een reactie