Die JIT-Kompilierungsleistung wurde in den nächtlichen Firefox-Builds deutlich verbessert

В nächtliche Bauten Firefox inbegriffen aktualisierter JIT-Compiler, entwickelt Codename WarpBuilder. Um das neue JIT zu aktivieren, wird in about:config die Option „javascript.options.warp“ bereitgestellt.
Es wird darauf hingewiesen, dass WarpBuilder nur der erste Schritt zur Integration neuer Optimierungen in den Browser ist, deren Implementierung im Laufe des nächsten Jahres geplant ist.

Das neue JIT verbessert die Leistung der SpiderMonkey-JavaScript-Engine, indem es die in der Engine verfolgten internen Typinformationen reduziert und zuvor die Intermediate Code Caching (CacheIR)-Technik verwendet vorgeschlagen im „Baseline“-Bytecode-Interpreter, der eine Zwischennische zwischen einem regulären Interpreter und einem Pre-JIT-Compiler einnimmt. Diese Änderungen ermöglichten es, die JIT-Architektur deutlich zu vereinfachen, die Reaktionsfähigkeit zu erhöhen, die Seitenladezeit zu verkürzen und den Speicherverbrauch zu reduzieren.

Es ist notiertdass das neue JIT viele Probleme des alten JIT IonBuilder gelöst hat, wie zum Beispiel:

  • Komplexität der Implementierung und potenzielle Sicherheitsprobleme;
  • Zusätzlicher Overhead für Baseline/C++-Code;
  • Übermäßige Spezialisierung führt zu unnötigen Neukompilierungen;
  • Zwischencode generieren MIR (IR der mittleren Ebene) im Hauptthread (in WarpBuilder wird die Hauptassembly des Zwischencodes in einem separaten Thread platziert);
  • Zusätzlicher Speicherverbrauch zum Speichern von Daten über Objekttypen und -gruppen (ObjectGroups).

Im Durchschnitt wird bei Tests, die die Leistung anhand visueller Metriken bewerten, eine Geschwindigkeitssteigerung von 5–15 % bei Verwendung von WarpBuilder beobachtet. Die Abschlussrate des Tachometertests wurde um 10 % erhöht. Tests auf realen Websites zeigten eine Reduzierung der Ladezeit von Google Docs um 20%, Index SpeedIndex beim Öffnen des Android-Bereichs auf Reddit verbessert um 13%, begann pdfpaint schneller zu arbeiten 18%. Speicherverbrauch im Test tp6 um 8 % gesunken. Daten Statistiken in Entwicklertools (Devtools Perf) zeigten ebenfalls eine Reduzierung des Speicherverbrauchs um 8 %.

Source: opennet.ru

Kommentar hinzufügen