Ang pagganap ng compilation ng JIT ay kapansin-pansing napabuti sa Firefox gabi-gabi na mga build

Π’ gabi-gabi na pagtatayo Firefox nakabukas na-update na JIT compiler, umunlad codenamed WarpBuilder. Upang paganahin ang bagong JIT, ang "javascript.options.warp" na opsyon ay ibinibigay sa about:config.
Napansin na ang WarpBuilder ay ang unang hakbang lamang patungo sa pagsasama ng mga bagong pag-optimize sa browser, na binalak na ipatupad sa susunod na taon.

Pinapabuti ng bagong JIT ang pagganap ng SpiderMonkey JavaScript engine sa pamamagitan ng pagbabawas ng panloob na uri ng impormasyon na sinusubaybayan sa loob ng engine at sa pamamagitan ng paggamit ng Intermediate Code Caching (CacheIR) na pamamaraan dati. iminungkahi sa "baseline" na bytecode interpreter, na sumasakop sa isang intermediate niche sa pagitan ng isang regular na interpreter at isang pre-JIT compiler. Ang mga pagbabagong ito ay naging posible upang makabuluhang pasimplehin ang arkitektura ng JIT, pataasin ang pagtugon, bawasan ang oras ng paglo-load ng pahina at bawasan ang pagkonsumo ng memorya.

Ito ay nabanggitna nalutas ng bagong JIT ang maraming problema ng lumang JIT IonBuilder, tulad ng:

  • Pagiging kumplikado ng pagpapatupad at mga potensyal na problema sa seguridad;
  • Karagdagang overhead para sa Baseline/C++ code;
  • Labis na espesyalisasyon na humahantong sa mga hindi kinakailangang recompilations;
  • Pagbuo ng intermediate code MIR (Middle-level IR) sa pangunahing thread (sa WarpBuilder, ang pangunahing pagpupulong ng intermediate code ay inilalagay sa isang hiwalay na thread);
  • Karagdagang memory consumption para sa pag-iimbak ng data tungkol sa mga uri at grupo ng mga bagay (ObjectGroups).

Sa karaniwan, sa mga pagsubok na sinusuri ang pagganap batay sa mga visual na sukatan, isang 5-15% na speedup ang sinusunod kapag gumagamit ng WarpBuilder. Ang rate ng pagkumpleto ng pagsubok sa speedometer ay tumaas ng 10%. Ang pagsubok sa mga totoong site ay nagpakita ng pagbawas sa oras ng paglo-load ng Google Docs ng 20%, index SpeedIndex kapag binubuksan ang seksyon ng Android sa Reddit pinahusay ng 13%, nagsimulang gumana nang mas mabilis ang pdfpaint sa 18%. Pagkonsumo ng memorya sa pagsubok tp6 nabawasan ng 8%. Data ang mga istatistika sa mga tool ng developer (devtools perf) ay nagpakita rin ng 8% na pagbawas sa pagkonsumo ng memorya.

Pinagmulan: opennet.ru

Magdagdag ng komento