ประสิทธิภาพการคอมไพล์ JIT ได้รับการปรับปรุงอย่างเห็นได้ชัดใน Firefox ทุกคืน

В สร้างทุกคืน Firefox เปิด อัพเดตคอมไพเลอร์ JIT ที่พัฒนา ชื่อรหัสว่า WarpBuilder หากต้องการเปิดใช้งาน JIT ใหม่ ตัวเลือก "javascript.options.warp" มีให้ใน about:config
โปรดทราบว่า WarpBuilder เป็นเพียงก้าวแรกในการรวมการปรับปรุงประสิทธิภาพใหม่ๆ เข้ากับเบราว์เซอร์ ซึ่งมีแผนจะดำเนินการในปีหน้า

JIT ใหม่ปรับปรุงประสิทธิภาพของกลไก SpiderMonkey JavaScript โดยการลดข้อมูลประเภทภายในที่ติดตามภายในกลไกและโดยใช้เทคนิค Intermediate Code Caching (CacheIR) ก่อนหน้านี้ เสนอ ในล่ามไบต์โค้ด "พื้นฐาน" ซึ่งครอบครองช่องระดับกลางระหว่างล่ามปกติและคอมไพเลอร์ pre-JIT การเปลี่ยนแปลงเหล่านี้ทำให้สถาปัตยกรรม JIT ง่ายขึ้นอย่างมาก เพิ่มการตอบสนอง ลดเวลาในการโหลดหน้าเว็บ และลดการใช้หน่วยความจำ

มีข้อสังเกตว่า JIT ใหม่ได้แก้ไขปัญหาต่างๆ มากมายของ JIT IonBuilder แบบเก่า เช่น:

  • ความซับซ้อนของการนำไปใช้และปัญหาด้านความปลอดภัยที่อาจเกิดขึ้น
  • ค่าใช้จ่ายเพิ่มเติมสำหรับโค้ด Baseline/C++;
  • ความเชี่ยวชาญที่มากเกินไปนำไปสู่การคอมไพล์ซ้ำโดยไม่จำเป็น
  • กำลังสร้างโค้ดระดับกลาง MIR (IR ระดับกลาง) ในเธรดหลัก (ใน WarpBuilder แอสเซมบลีหลักของโค้ดระดับกลางจะถูกวางไว้ในเธรดแยกต่างหาก)
  • การใช้หน่วยความจำเพิ่มเติมสำหรับการจัดเก็บข้อมูลเกี่ยวกับประเภทและกลุ่มของออบเจ็กต์ (ObjectGroups)

โดยเฉลี่ยแล้ว ในการทดสอบที่ประเมินประสิทธิภาพตามการวัดด้วยภาพ การเร่งความเร็ว 5-15% จะถูกสังเกตเมื่อใช้ WarpBuilder อัตราการทดสอบมาตรวัดความเร็วสำเร็จเพิ่มขึ้น 10% การทดสอบบนไซต์จริงช่วยลดเวลาในการโหลด Google เอกสารลงได้ ลด 20%, ดัชนี ดัชนีความเร็ว เมื่อเปิดส่วน Android บน Reddit ปรับปรุงโดย ลด 13%, pdfpaint เริ่มทำงานเร็วขึ้น ลด 18%. การใช้หน่วยความจำในการทดสอบ tp6 ลดลง 8% ข้อมูล สถิติในเครื่องมือสำหรับนักพัฒนา (devtools perf) ยังแสดงให้เห็นว่าการใช้หน่วยความจำลดลง 8%

ที่มา: opennet.ru

เพิ่มความคิดเห็น