Каковы преимущества компиляции точно в срок по сравнению с опережающей компиляцией?

В последнее время мы думаем об этом, и мне кажется, что большинство преимуществJIT Компиляция должна более или менее приписываться промежуточному формату, а само по себе совпадение не является хорошим способом для генерации кода.

Так что это основныепро JIT аргументы компиляции я обычно слышу:

Своевременная компиляция обеспечивает большую мобильность. Isn»Т, что связано с промежуточным форматом? Я имею в виду, что ничто не мешает вам скомпилировать ваш виртуальный байт-код в собственный байт-код, как только выУ меня есть это на вашей машине. Переносимость является проблемой враспределение» фаза, а не во времяБег' фаза.Хорошо, тогда как насчет генерации кода во время выполнения? Ну, то же самое относится. Ничто не мешает вам интегрировать компилятор точно в срок для реальной необходимости точно в вашу нативную программу.Но среда выполнения в любом случае компилирует его в собственный код и сохраняет полученный исполняемый файл в каком-то кеше на жестком диске. Да, конечно. Но это's оптимизировал вашу программу в условиях ограниченного времени, и этоот этого не становится лучше Смотрите следующий абзац.

Это'не нравитсядосрочно компиляция тоже не имела никаких преимуществ.Как раз вовремя компиляция имеет временные ограничения: вы можетеt заставляет конечного пользователя ждать вечно, пока ваша программа запускается, поэтому у него есть компромисс, который нужно где-то сделать. Большую часть времени они просто оптимизируют меньше. Мой друг имелпрофилирование что встроенные функции и развертывающиеся петливручную" (запутывая исходный код в процессе) оказал положительное влияние на производительность на егоC # программа обработки чисел; делать то же самое на моей стороне, с моим C Программа, выполняющая одно и то же задание, не дала положительных результатов, и я считаю, что это связано с обширными преобразованиями, которые мой компилятор получил.

И все же мыокружен сопряженными программами.C # а такжеДжава везде, скрипты Python могут компилироваться в какой-то байт-код, и яуверен, что целый ряд других языков программирования делают то же самое. Должна быть веская причина, по которой ям отсутствует. Так что же делаеткак раз вовремя сборник так превосходитдосрочно компиляции?

РЕДАКТИРОВАТЬ Чтобы устранить некоторую путаницу, возможно, было бы важно заявить, что ям все для промежуточного представления исполняемых файлов. Это имеет много преимуществ (и действительно, большинство аргументов закак раз вовремя компиляция на самом деле аргументы для промежуточного представления). Мой вопрос о том, как они должны быть скомпилированы в нативный код.

Большинство сред выполнения (или, если на то пошло, компиляторов) предпочитают компилировать их как раз вовремя или заранее. Какдосрочно Компиляция выглядит как лучшая альтернатива для меня, потому что компилятор имеет больше времени для выполнения оптимизаций, яМне интересно, почему Microsoft, Sun и все остальные идут наоборот. Я'Я сомневаюсь в оптимизации профилирования, так как мой опыт работы скак раз вовремя скомпилированные программы показали плохую базовую оптимизацию.

Я использовал пример с кодом C только потому, что мне нужен примердосрочно сборник противкак раз вовремя сборник. Тот факт, что C код не былПередача в промежуточное представление не имеет отношения к ситуации, так как мне просто нужно было показать, чтодосрочно компиляция может дать лучшие немедленные результаты.

Ответы на вопрос(9)

Ваш ответ на вопрос