自去年以来,Canonical 一直在研究使用 -O3 编译器优化来构建 Ubuntu 软件包,以便为 Ubuntu Linux 提供更好的性能。但几周前,他们决定不对所有软件包使用 -O3 优化。现在,他们提供了更多工程见解,以说明他们的理由以及对更多软件包使用 -O3 编译器优化的调查结果。
长话短说,对于发行版范围的 -O3 编译器优化,他们没有足够引人注目的性能优势来证明这种努力是合理的。他们还发现了一些性能倒退,并且 -O3 优化在某些情况下会对某些加载时间产生不利影响,并且会使二进制文件大小变大。
例如,他们发现 GNU Radio 的性能下降了 12%,TIFF 解压缩也倒退了近 12%,使用 -O3 优化默认值后,所有 Debian 软件包的大小增加了约 6%,桌面 ISO 的大小增加了近 4%。
在Ubuntu Discourse上,他们总结了他们的发现并得出结论:
“整个发行版的 O3 似乎并没有提供更好的性能,并且在交互任务中会倒退。它最多会影响 11.9% 的加载时间,这对努力实现快速应用程序启动的容器工作负载是不利的。总体而言,这种倒退主要是由于可执行文件大小的增加造成的。此外,在某些情况下,-O3 和链接时间优化结合在一起可能会导致过多的函数内联,进而导致性能倒退(可能是通过寄存器压力或指令缓存抖动)。
可以说,所有这些都符合传统观点:-O3 在某些情况下可以提供帮助,但不是一个合理的默认值。但验证这一点肯定比仅仅依赖民间知识要好!此外,我们仍然希望研究更多方法来提高 Ubuntu 的性能,每次我们锻炼基准测试能力时,我们都会做得更好。”
至少他们仍将探索选择性地为某些软件包启用 -O3 优化,以便获得合理的性能优势。
Ubuntu 25.04 预计将于 4 月中旬发布,并且确实带来了一些其他性能优势,同时更多的性能测试正在进行中。