Canonical рассказала, как -O3 портит запуск программ и раздувает систему.
Компания Canonical решила не внедрять агрессивные оптимизации компиляции -O3 для всех пакетов в Ubuntu, несмотря на первоначальные планы. Идея заключалась в том, чтобы повысить общую производительность системы, но результаты тестирования показали обратное: ощутимого выигрыша в скорости добиться не удалось, а вот побочные эффекты оказались заметными.
Среди выявленных проблем — замедление запуска приложений и рост размеров бинарных файлов. Например, производительность GNU Radio упала на 12%, декомпрессия изображений TIFF замедлилась почти на столько же, а суммарный размер всех пакетов увеличился примерно на 6%. Размер ISO-образа десктопной версии Ubuntu тоже вырос — пусть и всего на 4%, но это всё равно ощутимо для дистрибутива, который старается быть компактным.
На форуме Ubuntu Discourse разработчики объяснили , что основное снижение производительности связано с ростом размеров исполняемых файлов. Это особенно критично для контейнеров и приложений, которые запускаются часто и должны стартовать как можно быстрее. Кроме того, сочетание -O3
и Link Time Optimization (LTO) в ряде случаев привело к чрезмерному инлайну функций, что может перегружать регистры процессора и кэш инструкций, снижая итоговую производительность.
По сути, команда Ubuntu подтвердила то, о чём и так давно знали опытные разработчики: -O3 действительно может ускорить отдельные программы, но как настройка по умолчанию для всей системы она скорее вредит, чем помогает. При этом в Canonical подчеркнули, что важно не просто полагаться на общее мнение, а проверять всё на практике. Каждый такой эксперимент помогает лучше понимать, как добиться реального прироста производительности.
Несмотря на отказ от -O3 в масштабе всей системы, Canonical продолжит выборочно включать эту оптимизацию там, где это даёт ощутимый эффект. Бета-версия Ubuntu 25.04 уже готовится к выпуску в середине апреля и должна принести другие улучшения производительности — тесты пока продолжаются.