Jump to content

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

(Перенаправлено с двоичного оптимизатора )

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

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

  • Самый ранний «Оптимизатор COBOL» был разработан Capex Corporation в середине 1970-х годов для COBOL . В данном случае этот тип оптимизатора зависел от знания «слабостей» стандартного компилятора IBM COBOL и фактически заменял (или исправлял ) участки объектного кода более эффективным кодом. Код замены может заменить, например, линейный поиск по таблице бинарным поиском или иногда просто заменить относительно медленную инструкцию на заведомо более быструю, которая в остальном функционально эквивалентна в своем контексте. Этот метод теперь известен как снижение силы . Например, на IBM/360 оборудовании CLI инструкция была, в зависимости от конкретной модели, в два-пять раз быстрее, чем CLC инструкция для однобайтового сравнения. [1] [2]

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

[ редактировать ]

Основным преимуществом повторной оптимизации существующих программ было то, что запас уже скомпилированных клиентских программ ( объектный код ) можно было улучшить практически мгновенно с минимальными усилиями, сократив ресурсы ЦП при фиксированных затратах (цене проприетарного программного обеспечения ). Недостаток заключался в том, что новые выпуски 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. дои : 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 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8c6af6168c67caedcefb062e16ca2ae6__1712457720
URL1:https://arc.ask3.ru/arc/aa/8c/e6/8c6af6168c67caedcefb062e16ca2ae6.html
Заголовок, (Title) документа по адресу, URL1:
Object code optimizer - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)