Перейти к содержимому

Разница между JIT и интерпретатором

    JIT против интерпретатора

    Компиляция Just In Time (также известная как динамическая трансляция или JIT) — это техника, используемая в вычислительной технике для улучшения качества выполнения компьютерной программы. Она представляет собой объединение двух идей, встречающихся в средах времени выполнения: компиляция байткода и динамическая компиляция (это процесс, который некоторые реализации языков программирования используют для повышения производительности во время выполнения действий системой).

    Интерпретатор наиболее точно описывает выполнение действия через компьютерную программу. Существует несколько вариаций того, какие действия на самом деле выполняет интерпретатор: Он непосредственно выполняет исходный код программы; он переводит исходный код в представление, которое является эффективным промежуточным представлением, а затем выполняет этот код; он выполняет предварительно скомпилированный код, который был сохранен и создан компилятором, являющимся частью системы интерпретатора.

    JIT способен сочетать в себе преимущества, присущие как интерпретации, так и статической (то есть опережающей по времени) компиляции. Как интерпретатор, JIT способен повысить производительность за счет кэширования результатов блоков кода, которые были переведены — по сравнению с простой повторной оценкой каждой строки или операнда в коде каждый раз, когда они встречаются (как в интерпретируемом языке). Подобно статической компиляции кода во время разработки, JIT способен перекомпилировать код, если это окажется наиболее выгодным планом действий. Также, подобно статической компиляции, JIT способен обеспечивать гарантии безопасности.

    Как и компиляторы, интерпретаторы способны переводить код. Оба они являются основными методами реализации языков программирования; однако категории «компилятор» и «интерпретатор» не различаются (из-за их двойной роли в качестве трансляторов кода). Наиболее очевидным недостатком использования интерпретатора является то, что после интерпретации кода программа неизбежно будет работать медленнее, чем при простой компиляции кода; однако интерпретация кода занимает гораздо меньше времени, чем его компиляция и выполнение (особенно актуально при создании прототипов и тестировании кода).

    В целом, JIT обеспечивает гораздо более высокую производительность, чем интерпретаторы, а во многих случаях — гораздо более высокую производительность, чем статические компиляторы. Однако превосходство JIT не избавляет его от некоторых существенных недостатков: Существует небольшая задержка при первоначальном выполнении приложения (побочный эффект, связанный с затратами времени на загрузку и компиляцию байткода). В конечном итоге он будет генерировать более качественный код; однако первоначальная задержка, присущая этому, будет увеличиваться с ростом качества кода.

    Резюме:

    1. JIT — это техника, используемая для улучшения качества исполнения в среде выполнения; интерпретатор определяет выполнение действия через компьютерную программу.

    2. JIT сочетает в себе преимущества интерпретации и статической компиляции; интерпретатор может транслировать код так же, как компилятор, но в ущерб скорости работы программы.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Adblock
    detector