stringtranslate.com

Оптимизатор объектного кода

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

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

Примеры

Преимущества

Основное преимущество повторной оптимизации существующих программ заключалось в том, что запас уже скомпилированных клиентских программ ( объектный код ) можно было улучшить практически мгновенно с минимальными усилиями, сократив ресурсы ЦП при фиксированных затратах (цене проприетарного программного обеспечения ). Недостаток заключался в том, что новые выпуски COBOL, например, требовали (взимали плату) за обслуживание оптимизатора для удовлетворения возможных изменений внутренних алгоритмов COBOL. Однако, поскольку новые выпуски компиляторов COBOL часто совпадали с обновлением оборудования , более быстрое оборудование обычно более чем компенсировало возврат прикладных программ к их предварительно оптимизированным версиям (до тех пор, пока не был выпущен поддерживающий оптимизатор).

Другие оптимизаторы

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

Некоторые двоичные оптимизаторы используют метрики времени выполнения ( профилирование ) для интроспективного улучшения производительности, используя методы, аналогичные JIT- компиляторам.

Недавние улучшения

Недавно разработанные «бинарные оптимизаторы» для различных платформ, некоторые из которых претендуют на новизну, но, тем не менее, по существу используют те же (или подобные) методы, описанные выше, включают:

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

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

  1. ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 11 июля 2010 г. Проверено 7 января 2010 г.{{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  2. ^ Эванс, Майкл (1 декабря 1982 г.). «Разработка программного обеспечения для среды Cobol». Коммуникации АКМ . 25 (12): 874–882. дои : 10.1145/358728.358732 . S2CID  17268690. Архивировано из оригинала 27 октября 2021 г. Проверено 27 октября 2021 г.
  3. ^ «Автоматический двоичный оптимизатор IBM для z/OS — обзор» . www.ibm.com . 2015. Архивировано из оригинала 18 октября 2020 г. Проверено 15 мая 2020 г.
  4. ^ «Автоматический двоичный оптимизатор IBM для пробной облачной службы z/OS» . оптимизатор.ibm.com . 2020. Архивировано из оригинала 19 января 2021 г. Проверено 27 октября 2021 г.
  5. ^ «Оптимизатор двоичного кода». Архивировано из оригинала 22 июля 2010 г. Проверено 7 января 2010 г.
  6. ^ Дустервальд, Э. (2005). «Проектирование и разработка динамического бинарного оптимизатора». Труды IEEE . 93 (2): 436–448. doi :10.1109/JPROC.2004.840302. S2CID  2217101.
  7. ^ Сюй, Чаохао; Ли, Цзяньхуэй; Бао, Дао; Ван, Юн; Хуан, Бо (13 июня 2007 г.). «Оптимизация памяти на основе метаданных в динамическом двоичном трансляторе». Материалы 3-й международной конференции по виртуальным средам исполнения - VEE '07 . Ассоциация вычислительной техники. стр. 148–157. дои : 10.1145/1254810.1254831. ISBN 978-1-59593630-1. S2CID  15234434. Архивировано из оригинала 27 октября 2021 г. Проверено 27 октября 2021 г. - из цифровой библиотеки ACM.
  8. ^ «Архивная копия» (PDF) . Архивировано (PDF) из оригинала 19 апреля 2009 г. Проверено 7 января 2010 г.{{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  9. ^ Ким, Джинпё; Сюй, Вэй-Чунг; Ю, Пен-Чунг (2007). «COBRA: Адаптивная среда двоичной оптимизации времени выполнения для многопоточных приложений». 2007 Международная конференция по параллельной обработке (ICPP 2007) . п. 25. дои :10.1109/ICPP.2007.23. ISBN 978-0-7695-2933-2. S2CID  15079211.
  10. ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 11 сентября 2010 г. Проверено 7 января 2010 г.{{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  11. ^ "Оптимизация программного обеспечения "SOLAR" во время компоновки и во время выполнения" . Архивировано из оригинала 14 февраля 2016 г.
  12. ^ «Обзор продукта Dynimize» . dynimize.com . Архивировано из оригинала 25 октября 2021 г. Проверено 26 апреля 2021 г.
  13. ^ Панченко, Максим; Аулер, Рафаэль; Нелл, Билл; Оттони, Гильерме (16 февраля 2019 г.). «BOLT: Практический двоичный оптимизатор для центров обработки данных и за его пределами». Международный симпозиум IEEE/ACM по генерации и оптимизации кода (CGO) 2019 . стр. 2–14. arXiv : 1807.06735 . дои : 10.1109/CGO.2019.8661201. ISBN 978-1-7281-1436-1. S2CID  49869552.