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.

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


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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