JIT kompilācijas veiktspēja ir ievērojami uzlabota Firefox nakts versijās

В nakts būves Firefox ieslēgts atjaunināts JIT kompilators, izstrādāta ar koda nosaukumu WarpBuilder. Lai iespējotu jauno JIT, failā about:config ir pieejama opcija "javascript.options.warp".
Tiek atzīmēts, ka WarpBuilder ir tikai pirmais solis ceļā uz jaunu optimizāciju iekļaušanu pārlūkprogrammā, kuras plānots ieviest nākamā gada laikā.

Jaunais JIT uzlabo SpiderMonkey JavaScript dzinēja veiktspēju, samazinot iekšējā tipa informāciju, kas tiek izsekota dzinējā, un iepriekš izmantojot starpposma kodu kešatmiņas (CacheIR) paņēmienu. ierosināts “bāzes” baitkoda tulkā, kas ieņem starpnišu starp parasto tulku un kompilatoru pirms JIT. Šīs izmaiņas ļāva būtiski vienkāršot JIT arhitektūru, palielināt atsaucību, samazināt lapas ielādes laiku un samazināt atmiņas patēriņu.

Tiek atzīmētska jaunais JIT atrisināja daudzas vecā JIT IonBuilder problēmas, piemēram:

  • Ieviešanas sarežģītība un iespējamās drošības problēmas;
  • Papildu pieskaitāmās izmaksas par Baseline/C++ kodu;
  • Pārmērīga specializācija, kas noved pie nevajadzīgām pārkompilācijām;
  • Starpposma koda ģenerēšana MIR (vidēja līmeņa IR) galvenajā pavedienā (WarpBuilder starpkoda galvenais komplekts ir ievietots atsevišķā pavedienā);
  • Papildu atmiņas patēriņš datu glabāšanai par objektu veidiem un grupām (ObjectGroups).

Vidēji testos, kas novērtē veiktspēju, pamatojoties uz vizuālajiem rādītājiem, WarpBuilder lietošanas laikā tiek novērots paātrinājums par 5-15%. Spidometra testa pabeigšanas rādītājs palielinājās par 10%. Testēšana reālās vietnēs parādīja Google dokumentu ielādes laika samazināšanos par 20%, indekss Ātruma indekss atverot Android sadaļu Reddit uzlabojās par 13%, pdfpaint sāka strādāt ātrāk 18%. Atmiņas patēriņš testā tp6 samazinājās par 8%. Dati statistika izstrādātāju rīkos (devtools perf) arī uzrādīja atmiņas patēriņa samazinājumu par 8%.

Avots: opennet.ru

Pievieno komentāru