[ดูประวัติการแก้ไขสำหรับคำตอบที่ต่างออกไปซึ่งตอนนี้ล้าสมัยไปแล้ว]
ใช่มีคอมไพเลอร์ JIT สองสามตัวสำหรับ C และ / หรือ C ++
ยึด (ตามที่คุณคาดเดาจากเกม) ขึ้นอยู่กับ Clang / LLVM มันทำหน้าที่เหมือนล่าม นั่นคือคุณให้รหัสต้นฉบับบางส่วนให้คำสั่งเพื่อให้ทำงานและรัน การเน้นที่นี่ส่วนใหญ่เกี่ยวกับความสะดวกสบายและการรวบรวมที่รวดเร็วไม่ใช่การเพิ่มประสิทธิภาพสูงสุด เช่นนี้ถึงแม้ว่าในทางเทคนิคจะมีคำตอบสำหรับคำถามนี้ แต่มันก็ไม่เหมาะกับเจตนาของ OP มากนัก
เป็นไปได้ก็คือNativeJIT นี่เหมาะกับคำถามที่ค่อนข้างแตกต่าง โดยเฉพาะอย่างยิ่งมันไม่ยอมรับซอร์สโค้ด C หรือ C ++ และคอมไพล์และรันมัน แต่มันเป็นคอมไพเลอร์ขนาดเล็กที่คุณสามารถคอมไพล์ในโปรแกรม C ++ ของคุณ ยอมรับการแสดงออกซึ่งโดยทั่วไปจะแสดงเป็น EDSL ในโปรแกรม C ++ ของคุณและสร้างรหัสเครื่องจริงจากที่คุณสามารถดำเนินการได้ สิ่งนี้เหมาะกับเฟรมเวิร์กที่คุณสามารถคอมไพล์โปรแกรมส่วนใหญ่ด้วยคอมไพเลอร์ปกติ แต่มีนิพจน์บางอย่างที่คุณไม่รู้จนกว่าจะถึงเวลาใช้งาน
สำหรับจุดประสงค์ที่ชัดเจนของคำถามเดิมฉันคิดว่าจุดพื้นฐานของคำตอบดั้งเดิมของฉันยังคงอยู่: ในขณะที่คอมไพเลอร์ JIT สามารถปรับให้เข้ากับสิ่งต่าง ๆ เช่นข้อมูลที่แตกต่างกันจากการประมวลผลครั้งเดียวไปสู่อีกครั้ง ความจริงก็คือว่าสิ่งนี้สร้างความแตกต่างค่อนข้างน้อยอย่างน้อยเป็นกฎทั่วไป ในกรณีส่วนใหญ่การรันคอมไพเลอร์ ณ รันไทม์หมายความว่าคุณต้องทำการปรับให้เหมาะสมสักหน่อยดังนั้นสิ่งที่ดีที่สุดที่คุณมักจะคาดหวังก็คือมันใกล้เคียงกับเร็วที่สุดเท่าที่คอมไพเลอร์ทั่วไปจะผลิต
แม้ว่ามันจะเป็นไปได้ที่จะระบุสถานการณ์ที่ข้อมูลที่มีให้กับ JIT คอมไพเลอร์สามารถอนุญาตให้สร้างโค้ดที่ดีกว่าคอมไพเลอร์ทั่วไป แต่อินสแตนซ์ของเหตุการณ์นี้ที่เกิดขึ้นในทางปฏิบัติดูเหมือนจะผิดปกติสวย (และในกรณีส่วนใหญ่ มันเกิดขึ้นจริง ๆ แล้วมันเป็นเพราะปัญหาในซอร์สโค้ดไม่ใช่รูปแบบการคอมไพล์แบบสแตติก)