在 x86 系列cpu采用 -O3 并不是一种好的选择。因为 x86 系列cpu缺乏足够寄存器,-O3 会导致代码变慢。
另外,-O3 包含了 -finline-functions,这会使目标代码不必要地膨胀,从而导致执行变慢。
所以在 x86 系列 cpu 采用 -O2 和 -Os 的效果比 -O3 好。
建议 CFLAGS 设置如下:
CFLAGS="-O2 -march=pentium4 -pipe"
/etc/make.conf 中 LDFLAGS 的设置对性能有较大的影响。
1、基础优化:
LDFLAGS="-Wl,-O1"
这种优化设置非常安全,不会有什么问题。
2、通过"—as-needed"加快软件载入速度:
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
在这种优化设置中,加入了--as-needed参数,这将避免软件连接多余的库,从而大大提升软件的载入速度,特别是 KDE 和 GNOME 这类大型软件的载入速度。
这是我喜爱的一种优化方案。
需要注意的是,由于有些软件包不支持 --as-needed 参数而导致 emerge 失败,在构造这类软件包时需要取消 --as-needed 参数。