Я изучаю 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
Связь между интерпретатором, виртуальной машиной и JIT ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1727565319
Anonymous
Я изучаю Python, и хотя я не знаю Java, я читал кое-что о JVM
Что я знаю (и читал в других вопросах здесь, в SO): p>
[b]1.- Интерпретатор может напрямую выполнять исходный код (например, код Python или Java), но, поскольку исходный код не является машинным кодом, нам нужна «среда выполнения» для его запуска. , поэтому сюда входит виртуальная машина (например, PVM и JVM); Итак, исходный код — это что-то вроде «машинного кода» для этой виртуальной машины
Итак, вкратце, здесь интерпретатор — это пакет, который содержит только виртуальную машину. Выполнение происходит во время выполнения[/b]
Но это неэффективно, поскольку выполнение медленнее, чем выполнение скомпилированного кода, а оптимизация плохая
Итак, чтобы улучшить это, мы можем включить в уравнение компиляцию
[b]2.- Итак, чтобы улучшить производительность, мы можем использовать компиляцию (AOT), которая выдает байт-код в качестве вывода и тогда интерпретатор выполнит этот байт-код во время выполнения. Итак, опять же, нам нужна виртуальная машина, чтобы понять этот байт-код и выполнить его. Подводя итог, здесь интерпретатор — это пакет, который содержит компилятор AOT и виртуальную машину (например, CPython), но компилятор AOT может существовать отдельно от виртуальной машины (например, Jython), и этот байт-код предназначен для интерпретатора (например, JVM). в этом примере)[/b]
Но тогда у нас есть AOT-компилятор в сочетании с JIT-компилятором
[b]3.-Итак, (я думаю) когда мы объединяем AOT и JIT-компилятор, мы еще лучше повышаем производительность: теперь у нас есть исходный код (например, код Python или Java), мы скомпилировали его AOT в байт-код, а затем, поскольку теперь у нас есть JIT-компилятор, этот JIT-компилятор генерирует машинный код для конкретной виртуальной машины, поэтому виртуальной машине теперь не нужно выполнять байт-код, виртуальная машина теперь может выполнять машинный код, предназначенный для этой виртуальной машины, и это, конечно, улучшает оптимизацию. Таким образом, интерпретатор здесь представляет собой пакет, который может содержать компилятор AOT, JIT-компилятор и виртуальную машину.[/b]
У меня два вопроса: во-первых, верны ли здесь 3 утверждения ? а затем, помимо этих трех вещей:
Интерпретатор: VM
Интерпретатор: компилятор AOT + VM
Интерпретатор: AOT-компилятор + JIT-компилятор + VM
[b]Какие еще могут быть комбинации?[/b]
Заранее спасибо! Буду очень признателен за ваши ответы и ваше время!
Подробнее здесь: [url]https://stackoverflow.com/questions/79035326/relation-between-interpreter-vm-and-jit[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия