1
ทำความเข้าใจกับความแตกต่าง: ล่ามแบบดั้งเดิมคอมไพเลอร์ JIT ล่าม JIT และคอมไพเลอร์ AOT
ฉันพยายามที่จะเข้าใจความแตกต่างระหว่างล่ามแบบดั้งเดิมคอมไพเลอร์ JIT ล่าม JIT และคอมไพเลอร์ AOT ล่ามเป็นเพียงเครื่อง (เสมือนหรือทางกายภาพ) ที่ดำเนินการคำสั่งในภาษาคอมพิวเตอร์บางภาษา ในแง่นี้ JVM เป็นล่ามและ CPU จริงเป็นล่าม การคอมไพล์ล่วงหน้าเวลาหมายถึงการคอมไพล์โค้ดเป็นภาษาบางภาษาก่อนดำเนินการ (ตีความ) มัน อย่างไรก็ตามฉันไม่แน่ใจเกี่ยวกับคำจำกัดความที่แน่นอนของผู้แปล JIT และล่าม JIT ตามคำนิยามผมอ่าน, JIT รวบรวมเป็นเพียงการรวบรวมรหัสเพียงก่อนที่จะแปลความหมายของมัน ดังนั้นโดยทั่วไปการรวบรวม JIT ก็คือการรวบรวม AOT เสร็จสิ้นก่อนดำเนินการ (ตีความ) ใช่ไหม และล่าม JIT เป็นโปรแกรมที่มีทั้งคอมไพเลอร์ JIT และล่ามและรวบรวมรหัส (JITs มัน) ก่อนที่มันจะตีความมัน? โปรดอธิบายความแตกต่าง