JIТ-компиляция, или оперативная
компиляция
Перед выполнением на конкретной
машине, код на промежуточном языке Microsoft—
MS1L (Microsoft Intermediate Language) транслируется
оперативным компилятором, или ЛТ-компилятором
(JIT — "just-in-time" или "как раз вовремя")
в собственный (внутренний) код. Во время
работы программы некоторые участки кода
выполняться никогда не будут.
Следовательно, более эффективной может
оказаться трансляция кода из
промежуточного языка MSIL в собственный (внутренний)
код, осуществляемая по мере необходимости в
процессе выполнения приложения.
Собственный (внутренний) код при этом
сохраняется с целью повторного его
использования.
После загрузки типа, к каждому его
методу загрузчик присоединяет заглушку.
При первом вызове заглушка передает
управление ЛТ-компилятору, который
генерирует собственный (внутренний) код и
сохраняет адрес оттранслированного
собственного (внутреннего) кода в заглушке.
При последующих вызовах метода управление
передается непосредственно собственному (внутреннему)
коду.
|