Utendaji wa utungaji wa JIT umeboreshwa dhahiri katika miundo ya usiku ya Firefox

Π’ usiku hujenga Firefox pamoja kikusanyaji kilichosasishwa cha JIT, maendeleo iliyopewa jina la WarpBuilder. Ili kuwezesha JIT mpya, chaguo la "javascript.options.warp" limetolewa kuhusu:config.
Inajulikana kuwa WarpBuilder ni hatua ya kwanza tu kuelekea kujumuisha uboreshaji mpya kwenye kivinjari, ambayo imepangwa kutekelezwa katika mwaka ujao.

JIT mpya inaboresha utendakazi wa injini ya SpiderMonkey JavaScript kwa kupunguza maelezo ya aina ya ndani yanayofuatiliwa ndani ya injini na kwa kutumia mbinu ya Uhifadhi wa Misimbo ya Kati (CacheIR) hapo awali. iliyopendekezwa katika mkalimani wa bytecode "msingi", ambayo inachukua nafasi ya kati kati ya mkalimani wa kawaida na mkusanyaji wa kabla ya JIT. Mabadiliko haya yalifanya iwezekane kurahisisha kwa kiasi kikubwa usanifu wa JIT, kuongeza mwitikio, kupunguza muda wa upakiaji wa ukurasa na kupunguza matumizi ya kumbukumbu.

Imebainikakwamba JIT mpya ilitatua shida nyingi za JIT IonBuilder ya zamani, kama vile:

  • Ugumu wa utekelezaji na shida zinazowezekana za usalama;
  • Rudia ya ziada ya msimbo wa Baseline/C++;
  • Utaalam wa kupita kiasi unaoongoza kwa urejeshaji usio wa lazima;
  • Inazalisha msimbo wa kati MIR (IR ya kiwango cha kati) katika thread kuu (katika WarpBuilder, mkutano mkuu wa kanuni ya kati huwekwa kwenye thread tofauti);
  • Matumizi ya kumbukumbu ya ziada kwa kuhifadhi data kuhusu aina na vikundi vya vitu (ObjectGroups).

Kwa wastani, katika majaribio ambayo hutathmini utendakazi kulingana na vipimo vya kuona, kasi ya 5-15% huzingatiwa wakati wa kutumia WarpBuilder. Kiwango cha kukamilika kwa jaribio la kipima mwendo kiliongezeka kwa 10%. Majaribio kwenye tovuti halisi yalionyesha kupunguzwa kwa muda wa kupakia Hati za Google kwa 20%, index SpeedIndex wakati wa kufungua sehemu ya Android kwenye Reddit iliyoboreshwa na 13%, pdfpaint ilianza kufanya kazi kwa kasi zaidi 18%. Matumizi ya kumbukumbu katika mtihani tp6 ilipungua kwa 8%. Data takwimu katika zana za wasanidi (devtools perf) pia zilionyesha kupungua kwa matumizi ya kumbukumbu kwa 8%.

Chanzo: opennet.ru

Kuongeza maoni