Kinerja kompilasi JIT wis tambah apik ing Firefox saben wengi

Π’ mbangun wengi Firefox klebu nganyari kompiler JIT, dikembangke jeneng kode WarpBuilder. Kanggo ngaktifake JIT anyar, kasedhiya "javascript.options.warp" pilihan ing babagan: config.
Wigati dicathet yen WarpBuilder mung minangka langkah pisanan kanggo nggabungake optimasi anyar menyang browser, sing direncanakake bakal ditindakake ing taun ngarep.

JIT anyar nambah kinerja mesin JavaScript SpiderMonkey kanthi nyuda informasi jinis internal sing dilacak ing mesin lan nggunakake teknik Intermediate Code Caching (CacheIR) sadurunge. ngajokaken ing "baseline" bytecode interpreter, kang manggoni niche penengah antarane interpreter biasa lan compiler pre-JIT. Owah-owahan kasebut ndadekake bisa nyederhanakake arsitektur JIT kanthi signifikan, nambah responsif, nyuda wektu mbukak kaca lan nyuda konsumsi memori.

Wis kacathetyen JIT anyar ngrampungake akeh masalah saka JIT IonBuilder lawas, kayata:

  • Kompleksitas implementasine lan masalah keamanan potensial;
  • overhead tambahan kanggo kode Baseline / C ++;
  • Spesialisasi sing berlebihan sing nyebabake kompilasi ulang sing ora perlu;
  • Ngasilake kode penengah AKU (IR tingkat tengah) ing utas utama (ing WarpBuilder, rakitan utama kode penengah diselehake ing benang sing kapisah);
  • Konsumsi memori tambahan kanggo nyimpen data babagan jinis lan klompok obyek (ObjectGroups).

Rata-rata, ing tes sing ngevaluasi kinerja adhedhasar metrik visual, kacepetan 5-15% diamati nalika nggunakake WarpBuilder. Tingkat rampung tes spedometer mundhak 10%. Pengujian ing situs nyata nuduhake pangurangan wektu muat Google Docs kanthi 20%, indeks SpeedIndex nalika mbukak bagean Android ing Reddit apik dening 13%, pdfpaint wiwit bisa luwih cepet ing 18%. Konsumsi memori ing tes tp6 mudhun 8%. Indikator statistik ing alat pangembang (devtools perf) uga nuduhake 8% abang ing konsumsi memori.

Source: opennet.ru

Add a comment