Связь между интерпретатором, виртуальной машиной и JITJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Связь между интерпретатором, виртуальной машиной и JIT

Сообщение Anonymous »

Я изучаю Python, и хотя я не знаю Java, я читал кое-что о JVM
Что я знаю (и читал в других вопросах здесь, в SO): p>
1.- Интерпретатор может напрямую выполнять исходный код (например, код Python или Java), но, поскольку исходный код не является машинным кодом, нам нужна «среда выполнения» для его запуска. , поэтому сюда входит виртуальная машина (например, PVM и JVM); Итак, исходный код — это что-то вроде «машинного кода» для этой виртуальной машины
Итак, вкратце, здесь интерпретатор — это пакет, который содержит только виртуальную машину. Выполнение происходит во время выполнения

Но это неэффективно, поскольку выполнение медленнее, чем выполнение скомпилированного кода, а оптимизация плохая
Итак, чтобы улучшить это, мы можем включить в уравнение компиляцию
2.- Итак, чтобы улучшить производительность, мы можем использовать компиляцию (AOT), которая выдает байт-код в качестве вывода и тогда интерпретатор выполнит этот байт-код во время выполнения. Итак, опять же, нам нужна виртуальная машина, чтобы понять этот байт-код и выполнить его. Подводя итог, здесь интерпретатор — это пакет, который содержит компилятор AOT и виртуальную машину (например, CPython), но компилятор AOT может существовать отдельно от виртуальной машины (например, Jython), и этот байт-код предназначен для интерпретатора (например, JVM). в этом примере)
Но тогда у нас есть AOT-компилятор в сочетании с JIT-компилятором
3.-Итак, (я думаю) когда мы объединяем AOT и JIT-компилятор, мы еще лучше повышаем производительность: теперь у нас есть исходный код (например, код Python или Java), мы скомпилировали его AOT в байт-код, а затем, поскольку теперь у нас есть JIT-компилятор, этот JIT-компилятор генерирует машинный код для конкретной виртуальной машины, поэтому виртуальной машине теперь не нужно выполнять байт-код, виртуальная машина теперь может выполнять машинный код, предназначенный для этой виртуальной машины, и это, конечно, улучшает оптимизацию. Таким образом, интерпретатор здесь представляет собой пакет, который может содержать компилятор AOT, JIT-компилятор и виртуальную машину.
У меня два вопроса: во-первых, верны ли здесь 3 утверждения ? а затем, помимо этих трех вещей:
Интерпретатор: VM
Интерпретатор: компилятор AOT + VM
Интерпретатор: AOT-компилятор + JIT-компилятор + VM
Какие еще могут быть комбинации?
Заранее спасибо! Буду очень признателен за ваши ответы и ваше время!

Подробнее здесь: https://stackoverflow.com/questions/790 ... vm-and-jit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»