Как компилятор JIT помогает производительности приложений?

Я просто прочитал, что у Android есть 450% -ное улучшение производительности, потому что он добавил компилятор JIT , я знаю, что такое JIT, но я действительно не понимаю, почему это быстрее обычного скомпилированного кода? Или какая разница с более старым подходом с платформы Android (Java, например, скомпилированный байт-код).

Благодаря!

EDIT: Это очень интересно, спасибо !, Я бы хотел, чтобы каждый ответ был правильным:

Во-первых, отказ от ответственности, я совсем не знаком с Android. Так или иначе…

Я знаю, что есть два приложения компиляции JIT. Один заключается в том, чтобы преобразовать из байтовых кодов в фактические машинные инструкции. Вторая – супероптимизация .

Компиляция байт-кода JIT ускоряет работу, потому что байт-коды обрабатываются только один раз, а не каждый раз, когда они выполняются. Вероятно, это вид оптимизации.

Суперотптимация JIT, которая ищет по-настоящему оптимальный набор инструкций для реализации логики программ, немного более эзотерична. Вероятно, это не то, о чем вы говорите, хотя я читал сообщения о скорости 100% – 200% в результате.

VM необходимо превратить скомпилированный байт-код в машинные инструкции для запуска. Раньше это выполнялось с использованием интерпретатора, который отлично подходит для кода, который вызывается только один раз, но является субоптимальным для функций, которые вызываются повторно.

В Java VM наблюдались аналогичные ускорения, когда asa JIT-версии VM заменили исходные версии интерпретатора.

Компилятор JIT знает об этой системе, он может использовать то, что известно для создания высокоэффективного кода по сравнению с байт-кодом, и ходят слухи, что он может превзойти предварительно скомпилированные программы.

Вот почему он может идти быстрее, чем традиционная система java, где код запускался только как байт-код, который также использовал Android.

Помимо компиляции java-кода в собственный код, который может быть выполнен с помощью компилятора, JIT делает оптимизацию, которую вы можете выполнять только во время выполнения.

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