JIT-kompila efikeco estis rimarkeble plibonigita en Firefox-noktaj konstruoj

В noktaj konstruoj firefox inkluzivita ĝisdatigita JIT-kompililo, evoluinta kodita WarpBuilder. Por ebligi la novan JIT, la opcio "javascript.options.warp" estas provizita en about:config.
Oni rimarkas, ke WarpBuilder estas nur la unua paŝo al korpigado de novaj optimumigoj en la retumilon, kiuj estas planitaj esti efektivigitaj dum la venonta jaro.

La nova JIT plibonigas la agadon de la SpiderMonkey JavaScript-motoro reduktante la internajn tipinformojn spuritajn ene de la motoro kaj uzante la Intermediate Code Caching (CacheIR) teknikon antaŭe. proponis en la "bazlinio" bajtkoda interpretisto, kiu okupas mezan niĉon inter regula interpretisto kaj antaŭ-JIT-kompililo. Ĉi tiuj ŝanĝoj ebligis signife simpligi la JIT-arkitekturon, pliigi respondecon, redukti paĝan ŝarĝan tempon kaj redukti memorkonsumon.

Ĝi estas notitake la nova JIT solvis multajn problemojn de la malnova JIT IonBuilder, kiel ekzemple:

  • Komplekseco de efektivigo kaj eblaj sekurecaj problemoj;
  • Plia superkosto por Baseline/C++-kodo;
  • Troa specialiĝo kondukanta al nenecesaj rekompiloj;
  • Generante mezan kodon MI (Mez-nivela IR) en la ĉefa fadeno (en WarpBuilder, la ĉefa aro de la meza kodo estas metita en apartan fadenon);
  • Kroma konsumo de memoro por stoki datumojn pri tipoj kaj grupoj de objektoj (ObjectGroups).

Averaĝe, en testoj, kiuj taksas rendimenton surbaze de vidaj metrikoj, 5-15% plirapidiĝo estas observita kiam vi uzas WarpBuilder. Rapidometro-test-kompletiga indico pliiĝis je 10%. Testado sur realaj retejoj montris redukton de la tempo de ŝarĝo de Google Docs je 20%, indekso SpeedIndex malferminte la Android-sekcion sur Reddit plibonigita per 13%, pdfpaint ekfunkciis pli rapide 18%. Memorkonsumo en la testo tp6 malpliiĝis je 8%. Indikiloj statistiko en programiloj (devtools perf) ankaŭ montris 8% redukton en memorkonsumo.

fonto: opennet.ru

Aldoni komenton