JIT-kokoelman suorituskyky on parantunut huomattavasti Firefoxin öisissä koontiversioissa

В öisiä rakennuksia Firefox mukana päivitetty JIT-kääntäjä, kehitetty koodinimeltään WarpBuilder. Uuden JIT:n käyttöönotto edellyttää "javascript.options.warp"-vaihtoehtoa noin:config-tiedostossa.
On huomattava, että WarpBuilder on vasta ensimmäinen askel kohti uusia optimointeja, jotka on tarkoitus ottaa käyttöön seuraavan vuoden aikana.

Uusi JIT parantaa SpiderMonkey JavaScript -moottorin suorituskykyä vähentämällä moottorin sisäisiä tyyppitietoja ja käyttämällä aiemmin välimuistitekniikkaa (CacheIR). ehdotettu "perustason" tavukooditulkkissa, joka sijaitsee tavallisen tulkin ja esi-JIT-kääntäjän välillä. Nämä muutokset mahdollistivat merkittävästi JIT-arkkitehtuuria yksinkertaistamisen, reagoivuuden lisäämisen, sivun latausajan ja muistin kulutuksen pienentämisen.

On huomattavaettä uusi JIT ratkaisi monia vanhan JIT IonBuilderin ongelmia, kuten:

  • Toteutuksen monimutkaisuus ja mahdolliset turvallisuusongelmat;
  • Perustason/C++-koodin lisäkustannukset;
  • Liiallinen erikoistuminen, joka johtaa tarpeettomiin uudelleenkäännöksiin;
  • Luodaan välikoodia MIR (Keskitason IR) pääsäikeessä (WarpBuilderissa välikoodin pääkokoonpano sijoitetaan erilliseen säikeeseen);
  • Lisämuistin kulutus objektityyppien ja objektiryhmien (ObjectGroups) tietojen tallentamiseen.

Testeissä, jotka arvioivat suorituskykyä visuaalisten mittareiden perusteella, havaitaan keskimäärin 5-15 % nopeutta WarpBuilderiä käytettäessä. Nopeusmittarin testin valmistumisaste kasvoi 10 %. Testaus oikeilla sivustoilla osoitti, että Google-dokumenttien latausaika lyheni 20%, indeksi SpeedIndex avattaessa Android-osio Redditissä parantunut 13%, pdfpaint alkoi toimia nopeammin 18%. Muistin kulutus testissä tp6 laski 8 %. Indikaattorit kehittäjätyökalujen (devtools perf) tilastot osoittivat myös muistin kulutuksen vähentyneen 8 %.

Lähde: opennet.ru

Lisää kommentti