Prestasi kompilasi JIT telah dipertingkatkan dengan ketara dalam binaan setiap malam Firefox

Π’ binaan malam Firefox dihidupkan pengkompil JIT yang dikemas kini, membangun bernama kod WarpBuilder. Untuk mendayakan JIT baharu, pilihan "javascript.options.warp" disediakan dalam about:config.
Adalah diperhatikan bahawa WarpBuilder hanyalah langkah pertama ke arah memasukkan pengoptimuman baharu ke dalam penyemak imbas, yang dirancang untuk dilaksanakan pada tahun hadapan.

JIT baharu meningkatkan prestasi enjin JavaScript SpiderMonkey dengan mengurangkan maklumat jenis dalaman yang dijejaki dalam enjin dan dengan menggunakan teknik Cache Kod Pertengahan (CacheIR) sebelum ini. dicadangkan dalam penterjemah bytecode "garis dasar", yang menduduki niche perantaraan antara penterjemah biasa dan pengkompil pra-JIT. Perubahan ini memungkinkan untuk memudahkan seni bina JIT dengan ketara, meningkatkan responsif, mengurangkan masa memuatkan halaman dan mengurangkan penggunaan memori.

Ia diperhatikanbahawa JIT baharu menyelesaikan banyak masalah JIT IonBuilder lama, seperti:

  • Kerumitan pelaksanaan dan potensi masalah keselamatan;
  • Overhed tambahan untuk kod Baseline/C++;
  • Pengkhususan yang berlebihan membawa kepada penyusunan semula yang tidak perlu;
  • Menjana kod perantaraan MIR (IR peringkat pertengahan) dalam utas utama (dalam WarpBuilder, pemasangan utama kod perantaraan diletakkan dalam utas berasingan);
  • Penggunaan memori tambahan untuk menyimpan data tentang jenis dan kumpulan objek (ObjectGroups).

Secara purata, dalam ujian yang menilai prestasi berdasarkan metrik visual, kelajuan 5-15% diperhatikan apabila menggunakan WarpBuilder. Kadar penyiapan ujian speedometer meningkat sebanyak 10%. Ujian pada tapak sebenar menunjukkan pengurangan masa pemuatan Dokumen Google sebanyak 20% , indeks SpeedIndex apabila membuka bahagian Android pada Reddit dipertingkatkan oleh 13% , pdfpaint mula berfungsi lebih cepat pada 18% . Penggunaan ingatan dalam ujian tp6 menurun sebanyak 8%. Data statistik dalam alat pembangun (devtools perf) juga menunjukkan pengurangan 8% dalam penggunaan memori.

Sumber: opennet.ru

Tambah komen