ฉันได้ทำการค้นคว้าล่าม / คอมไพเลอร์แล้วฉันก็สะดุดกับ JIT-Compilation โดยเฉพาะ V8 Javascript Engine ของ Google Chrome
คำถามของฉันคือ -
- จะเร็วกว่าการตีความมาตรฐานอย่างไร
- ทำไมการรวบรวม JIT จึงไม่ถูกใช้ตั้งแต่แรก?
ความเข้าใจปัจจุบันของฉัน
โปรแกรม Javascript ทุกตัวจะเริ่มต้นเป็นซอร์สโค้ดไม่ว่าวิธีการดำเนินการจะถูกแปลเป็นรหัสเครื่องในที่สุด
ทั้งการรวบรวม JITและการตีความต้องเป็นไปตามเส้นทางนี้ดังนั้นการรวบรวม JIT จะเร็วขึ้นอย่างไรมันดูเหมือนว่า JIT รวบรวมเป็นนวัตกรรมที่ค่อนข้างเก่า , ตามออกของวิกิพีเดียJIT รวบรวมบทความ
"คอมไพเลอร์ JIT ที่ได้รับการตีพิมพ์ครั้งแรกนั้นมีสาเหตุมาจากการทำงานบน LISP โดย McCarthy ในปี 1960 "
"Smalltalk (c. 1983 ) เป็นผู้บุกเบิกด้านใหม่ของการรวบรวม JIT ตัวอย่างเช่นการแปลรหัสเครื่องทำได้ตามความต้องการและผลลัพธ์ถูกแคชไว้เพื่อใช้ในภายหลังเมื่อหน่วยความจำขาดแคลนระบบจะลบรหัสนี้และสร้างใหม่ เมื่อมันต้องการอีกครั้ง "
เหตุใดจึงต้องได้รับการตีความ Javascript จะเริ่มต้นด้วย ?
ฉันสับสนมากและฉันได้ทำการวิจัยมากมายเกี่ยวกับเรื่องนี้ แต่ฉันไม่พบคำตอบที่น่าพอใจ
คำตอบที่ชัดเจนและกระชับจะได้รับการชื่นชม และหากต้องการคำอธิบายเพิ่มเติมเกี่ยวกับล่ามจำเป็นต้องรวบรวม JIT-Compilers และอื่น ๆ เข้ามาด้วยเช่นกัน