在上个月的 -O2 与 -O3 内核构建比较的基础上,我运行了一个带有“-O3 -march=native”的 Linux 内核构建,以迎合用于此测试的 Alder Lake 处理器而不是通用 x86_64。除了使用不同的 KCFLAGS 重建相同的 Linux 内核和相同的 Kconfig 之外,没有对系统进行其他更改。
但长话短说,“-O3 -march=native”内核构建并没有产生明显更好的性能——事实上,当在 Ubuntu 22.04 LTS 上使用 GCC 11 构建时,它在许多工作负载中都出现了倒退。
“-O3 -march=native”内核性能,特别是对于某些 I/O 工作负载,所产生的结果不仅比 -O3 内核还慢,而且还 -O2 构建。
从数据库工作负载到使用 FIO 的基本 I/O 基准测试,通常会看到“-O3 -march=native”的内核产量结果明显落后于不太积极优化的内核。
除此之外,结果基本上是一个洗涤……“-O3 -march=native”优化内核在这个 Core i5 12600K 桌面上尝试的数十个基准测试中没有得到回报。那些希望深入研究数十个基本平坦的结果的人可以查看此结果页面以获取所有数据的完整信息。
在执行的几十个基准测试的几何平均值上,“-O3 -march=native”内核实际上由于 I/O 基准测试的回归而稍微慢了一点。所以至少在这个特殊的 Intel Alder Lake 系统的情况下,“-O3 -march=native”内核优化构建是不值得的。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun176486.html