Ang JIT compilation performance namatikdan nga milambo sa Firefox kada gabii nga pagtukod

Π’ gabii nga pagtukod License gilakip gi-update nga JIT compiler, naugmad gi-codenamed nga WarpBuilder. Aron mahimo ang bag-ong JIT, ang "javascript.options.warp" nga kapilian gihatag sa about:config.
Namatikdan nga ang WarpBuilder mao lamang ang una nga lakang padulong sa pag-apil sa mga bag-ong pag-optimize sa browser, nga giplano nga ipatuman sa sunod nga tuig.

Ang bag-ong JIT nagpauswag sa performance sa SpiderMonkey JavaScript engine pinaagi sa pagkunhod sa internal type nga impormasyon nga gisubay sulod sa makina ug pinaagi sa paggamit sa Intermediate Code Caching (CacheIR) nga teknik kaniadto. gisugyot sa "baseline" bytecode interpreter, nga nag-okupar sa usa ka intermediate niche tali sa usa ka regular nga tighubad ug usa ka pre-JIT compiler. Kini nga mga pagbag-o nagpaposible sa pagpayano sa arkitektura sa JIT, pagdugang sa pagtubag, pagkunhod sa oras sa pagkarga sa panid ug pagkunhod sa konsumo sa memorya.

Kini namatikdannga ang bag-ong JIT nakasulbad sa daghang mga problema sa daan nga JIT IonBuilder, sama sa:

  • Pagkakomplikado sa pagpatuman ug posibleng mga problema sa seguridad;
  • Dugang nga overhead para sa Baseline/C++ code;
  • Sobra nga espesyalisasyon nga mitultol sa wala kinahanglana nga pag-recompilations;
  • Paghimo intermediate code KANAKO (Middle-level IR) sa main thread (sa WarpBuilder, ang main assembly sa intermediate code gibutang sa bulag nga thread);
  • Dugang nga konsumo sa panumduman alang sa pagtipig sa datos bahin sa mga tipo ug grupo sa mga butang (ObjectGroups).

Sa kasagaran, sa mga pagsulay nga nag-evaluate sa performance base sa visual metrics, usa ka 5-15% speedup ang naobserbahan sa paggamit sa WarpBuilder. Ang rate sa pagkompleto sa pagsulay sa speedometer misaka sa 10%. Ang pagsulay sa tinuod nga mga site nagpakita sa pagkunhod sa oras sa pagkarga sa Google Docs pinaagi sa 20%, indeks SpeedIndex sa pag-abli sa seksyon sa Android sa Reddit gipauswag sa 13%, pdfpaint nagsugod sa pagtrabaho nga mas paspas sa 18%. Pagkonsumo sa memorya sa pagsulay tp6 mikunhod sa 8%. Indicators Ang mga estadistika sa mga himan sa developer (devtools perf) nagpakita usab ug 8% nga pagkunhod sa konsumo sa memorya.

Source: opennet.ru

Idugang sa usa ka comment