Именно так. А всё потому, что JIT знает какие данные в рантайме бегали и может оптимизировать.
Тогда какой смысл сравнивать скомпилированный Go с интерпретируемым байт-кодом C#, если у второго включен JIT, который его тоже постепенно скомпилирует?
Тогда какой смысл сравнивать скомпилированный Go с интерпретируемым байт-кодом C#, если у второго включен JIT, который его тоже постепенно скомпилирует?
Что бы 1) понять какой "язык" быстрее; 2) понять, что "интерпретируемый" язык не значит медленный язык
Или просто назовём JIT-компиляцию просто "оптимизацией при интерпретировании" и скажем, что интерпретируемый язык быстрее?
А что, это не оптимизация? JIT может тупо кешировать результат выполнения инструкций или же буквально "связывать" исходный код с машинным кодом (при этом не генерируя его для "постоянных запусков без интерпретатора". Так что не так то?