Разработчики Ubuntu проанализировали эффективность включения PGO-оптимизации

Компания Canonical опубликовала результат оценки изменения производительности при пересборке пакетов с включением оптимизации на основе результатов профилирования кода (PGO – Profile-guided optimization), позволяющей генерировать более оптимальный код на основе анализа особенностей выполнения программы. В ходе проделанной работы был сделан вывод, что включение PGO-оптимизации позволило на 5-7% снизить нагрузку на CPU и ускорить время сборки.

В ходе проведённого эксперимента была измерена производительность сборки пакетов OpenSSL, GDB, Emacs и Python3.12 в виртуальном окружении QEMU, эмулирующем систему RISC-V на компьютере с архитектурой x86_64. Разница производительности оценивалась для QEMU, собранного с опциями по умолчанию и с включением PGO-оптимизации. Тестируемые пакеты для сборки были выбраны с расчётом, что в них используются разные языки программирования, а объём кода соответствует 1-6 часам сборки в эмуляторе.

С практической стороны, эксперимент позволил добиться повышения производительности сборочных окружений для платформы RISC-V, запускаемых при помощи эмулятора. Сборочные работы, ранее выполняемые за сутки, при задействовании PGO-оптимизации стали выполняться на два часа быстрее, что дало возможность ежедневно производить на том же сервере две дополнительные полные сборки.








Release. Ссылка here.