A JIT fordítási teljesítménye észrevehetően javult a Firefox éjszakai verzióiban

В éjszakai építkezések Firefox bekapcsolva frissített JIT fordító, fejlett WarpBuilder kódnéven. Az új JIT engedélyezéséhez a "javascript.options.warp" beállítás elérhető az about:config fájlban.
Meg kell jegyezni, hogy a WarpBuilder csak az első lépés afelé, hogy új optimalizálásokat építsenek be a böngészőbe, amelyeket a tervek szerint a következő év folyamán hajtanak végre.

Az új JIT javítja a SpiderMonkey JavaScript motor teljesítményét azáltal, hogy csökkenti a motoron belül nyomon követett belső típusinformációkat, és korábban az Intermediate Code Caching (CacheIR) technikát használja. javasolta az „alapvonal” bájtkód értelmezőben, amely egy köztes rést foglal el a normál értelmező és a JIT előtti fordító között. Ezek a változtatások lehetővé tették a JIT architektúra jelentős egyszerűsítését, a válaszkészség növelését, az oldalbetöltési idő csökkentését és a memóriafelhasználás csökkentését.

Megjegyezzükhogy az új JIT számos problémát megoldott a régi JIT IonBuilderrel, mint például:

  • A megvalósítás összetettsége és lehetséges biztonsági problémák;
  • További általános költségek a Baseline/C++ kódhoz;
  • Túlzott szakosodás, ami szükségtelen újrafordításokhoz vezet;
  • Köztes kód generálása MIR (Középszintű IR) a főszálban (WarpBuilderben a köztes kód fő szerelvénye egy külön szálban van elhelyezve);
  • További memóriafelhasználás az objektumok típusaira és csoportjaira vonatkozó adatok tárolására (ObjectGroups).

A teljesítményt vizuális mérőszámok alapján értékelő tesztekben átlagosan 5-15%-os gyorsulás figyelhető meg a WarpBuilder használatakor. A sebességmérő teszt teljesítési aránya 10%-kal nőtt. Valódi webhelyeken végzett tesztelés azt mutatta, hogy a Google Dokumentumok betöltési ideje a következővel csökkent 20%, index SpeedIndex amikor megnyitja az Android szekciót a Reddit-en, amivel javult 13%, a pdfpaint gyorsabban kezdett dolgozni 18%. Memóriafogyasztás a tesztben tp6 8%-kal csökkent. Adat A fejlesztői eszközök (devtools perf) statisztikái szintén 8%-os memóriafogyasztás-csökkenést mutattak.

Forrás: opennet.ru

Hozzászólás