WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

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

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

Примеры

  • HotSpot — адаптивная оптимизация в Java
  • Система Dynamo от Hewlett-Packard[1]

Деоптимизация

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

См. также

Примечания

Литература

  • Matthew Arnold and Stephen J. Fink and David Grove and Michael Hind and Peter F. Sweeney. Adaptive optimization in the Jalapeño JVM (англ.) // Sigplan Notices. — 2000. Vol. 35. P. 47--65.

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии