Facebook BOLT ускоряет работу больших двоичных файлов x86 и ARM64 до 15%

Компиляторы, такие как GCC или LLVM, обычно хорошо справляются с оптимизацией кода при обработке исходного кода в узле, а затем в двоичном формате, но еще есть возможности для улучшения – по крайней мере, для больших двоичных файлов – и компания Facebook выпустила BOLT (Binary Optimization и Layout Tool), сокращающую нагрузку на процессор на 2-15%.

Этот инструмент, в основном, полезен для двоичных файлов, построенных из большой кодовой базы, с размером двоичного файла более 10 МБ, который часто слишком велик для размещения в кэше команд. Оборудование обычно тратит много времени на обработку потока инструкций из памяти в ЦПУ, иногда до 30% времени выполнения, и BOLT оптимизирует размещение инструкций в памяти – как показано ниже – для решения этой проблемы, также известной как «instruction starvation».

BOLT работает с приложениями, созданными любым компилятором, включая популярные компиляторы GCC и Clang. Инструмент использует сборщик данных Linux для сбора данных о производительности, несколько библиотек LLVM и в настоящее время поддерживает двоичные файлы x86-64 и Aarch64 (ARM64). Компания добилась 8% улучшения для HHVM (HipHop Virtual Machine) для языков программирования PHP и Hack.

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

Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments