Адаптивная оптимизация - Adaptive optimization

Адаптивная оптимизация это техника в Информатика который выполняет динамическая перекомпиляция порций программа на основе текущего профиля выполнения. При простой реализации адаптивный оптимизатор может просто найти компромисс между своевременная компиляция и инструкции по интерпретации. На другом уровне адаптивная оптимизация может использовать преимущества локальных условий данных для оптимизации удаленных ветвей и использования встроенное расширение снизить стоимость вызовов процедур.

Рассмотрим гипотетическое банковское приложение, которое обрабатывает транзакции одну за другой. Эти транзакции могут быть чеками, депозитами и большим количеством малоизвестных транзакций. Когда программа выполняется, фактические данные могут состоять из очистки десятков тысяч чеков без обработки единственного депозита и без обработки единственного чека с мошенническим номером счета. Адаптивный оптимизатор компилирует ассемблерный код для оптимизации в этом общем случае. Если вместо этого система начнет обрабатывать десятки тысяч депозитов, адаптивный оптимизатор перекомпилирует ассемблерный код для оптимизации нового общего случая. Эта оптимизация может включать в себя встраиваемый код.

Примеры адаптивной оптимизации включают: HotSpot и HP Система динамо.[1]

В некоторых системах, особенно Виртуальная машина Java[нужна цитата ], исполнение в диапазоне инструкции по байт-коду возможно доказуемо обратное. Это позволяет адаптивному оптимизатору делать рискованные предположения о коде. В приведенном выше примере оптимизатор может предположить, что все транзакции являются чеками и все номера счетов действительны. Когда эти предположения оказываются неверными, адаптивный оптимизатор может «раскрутиться» до допустимого состояния и затем правильно интерпретировать инструкции байтового кода.

Смотрите также

Рекомендации

внешняя ссылка