Компания 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 в QEMU стали выполняться почти на два часа быстрее, что дало возможность ежедневно производить на том же сервере две дополнительные полные сборки.