กูเกิลออก Chrome 91 ที่ระบุว่าเร็วขึ้นสูงสุด 23% อันเป็นผลมาจากคอมไพเลอร์จาวาสคริปต์ตัวใหม่ Sparkplug
เดิมทีเอนจิน V8 ของ Chrome มีคอมไพเลอร์ 2 ระดับคือ Ignition ที่เริ่มแปลงจาวาสคริปต์ชั้นแรกเป็น byte code และ Turbofan ทำหน้าที่ปรับแต่ง (optimize) เป็น machine code ที่มีประสิทธิภาพสูง โดยอิงจากข้อมูลที่ได้ตอนแปลง byte code มาช่วยปรับแต่ง ปัญหาของแนวทางเดิมคือ Turbofan เริ่มทำงานช้ากว่า Ignition มาก
ทางแก้คือเพิ่มคอมไพเลอร์ Sparkplug มาคั่นตรงกลาง โดย Sparkplug จะสร้าง machine code แต่ไม่อิงข้อมูลตอน Ignition รัน ทำให้ไม่ต้องรอกัน ผลที่ได้คือ machine code ที่มีประสิทธิภาพดีในระดับหนึ่ง แต่ได้ผลลัพธ์ออกมาเร็วกว่า Turbofan มาก จากนั้นค่อยนำโค้ดที่ได้ไป optimize ด้วย Turbofan อีกทีถ้าจำเป็น
เทคนิคอีกอย่างที่ V8 นำมาใช้งานคือ short builtins เป็นวิธีการจัดวาง machine code ไว้ในแรม โดยนำชุดคำสั่งที่ใช้บ่อยๆ (common routines) คัดลอกมาวางไว้ในตำแหน่งหน่วยความจำใกล้ๆ กับที่ใช้งาน เพื่อให้ซีพียูไม่ต้องเรียกโค้ดที่อยู่ไกลๆ (ทำเรื่อง branch prediction ได้ดีขึ้น)
ไม่มีความคิดเห็น