Компиляция
Just-in-Time (JIT) (также динамическая трансляция или компиляция во время выполнения) - это способ выполнения компьютерного кода , который включает компиляцию во время выполнения программа - во время выполнения - , а не до выполнения .
IT-компиляция представляет собой комбинацию двух традиционных подходов к переводу в машинный код - заблаговременная компиляция (AOT) и интерпретация - и сочетает в себе некоторые преимущества и недостатки обоих. JIT-компиляция сочетает в себе скорость скомпилированного кода с гибкостью интерпретации .
Давайте рассмотрим JIT, используемый в JVM,
Например, JIT-компиляторы HotSpot JVM генерируют динамическую оптимизацию. Другими словами, они принимают решения по оптимизации во время работы приложения Java и генерируют высокопроизводительные машинные инструкции , предназначенные для базовой архитектуры системы.
Когда метод выбран для компиляции, JVM передает свой байт-код компилятору Just-In-Time (JIT). JIT должен понимать семантику и синтаксис байт-кода, прежде чем он сможет правильно скомпилировать метод. Чтобы помочь JIT-компилятору проанализировать метод, его байт-код сначала переформулируется во внутреннее представление, называемое деревьями трассировки, которое больше напоминает машинный код, чем байт-код. Затем выполняется анализ и оптимизация деревьев метода. В конце деревья переводятся в нативный код.
Дерево трассировки - это структура данных, которая используется при компиляции программного кода во время выполнения. Деревья трассировки используются в виде компилятора «точно в срок», который отслеживает код, выполняемый во время «горячих точек», и компилирует его. См. это .
См .: