Адаптивная оптимизация
Адаптивная оптимизация — техника в информатике и программировании, которая производит динамическую перекомпиляцию фрагментов программы, основываясь на текущем профиле исполнения. В простейшем случае реализации адаптивный оптимизатор может просто выбирать между компиляцией на лету и интерпретацией инструкций. На другом уровне адаптивная оптимизация может использовать преимущества локальных условий по данным для оптимизации ветвлений и использовать встраивания функций, чтобы уменьшить количество переключений контекста.
Рассмотрим гипотетическое банковское приложение, которое обрабатывает транзакции друг за другом. Эти транзакции могут быть списаниями, взносами и множеством других непонятных операций. Когда программа выполняется, фактические данные могут состоять из очистки десятков тысяч списаний без единой обработки взноса и без единой обработки списания с мошеннического счёта. Адаптивный оптимизатор будет компилировать в машинный код, оптимизируя его для общего случая. Если система затем начинает вместо этого обрабатывать десятки тысяч взносов, адаптивный оптимизатор перекомпилирует в машинный код, чтобы оптимизировать для новых общих условий. Эти оптимизации могут включать встраивание функций или перемещение кода обработки ошибок во вторичный кэш.
Примеры
Деоптимизация
В некоторых системах, в частности в
См. также
- Profile-guided optimization
- Критический участок кода
Примечания
- ↑ HP’s Dynamo . Дата обращения: 7 декабря 2014. Архивировано 5 февраля 2012 года.
Литература
- 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.
Это заготовка статьи по информатике. Помогите Википедии, дополнив её. |
![]() | У этой статьи есть несколько проблем, помогите их исправить: |