昨天晚上,在linuxsir的精华版,研究了几篇gcc编译优化的文章,发现,如果要提高emerge软件的速度,必须要对

/etc/make.conf 里的 gcc 编译选项 CFLAGS,LDFLAGS 做一些简单的优化。

 

这里有一篇详解CFLAGS的文章:

http://blog.csdn.net/collide/archive/2004/12/28/231852.aspx

 

LDFLAGS文章看这里:

http://www.linuxsir.org/bbs/thread155216.html

 

一开始,我先参照了,第一篇文章里的最高效能优化策略。作者称可以大幅提高编译后,软件的性能。

于是实验了一下 emerge php,但却发生了致命错误。

搞了半天也没找到原因,我估计是,这类优化,太过头了。凡事还是应该脚踏实地啊。

随后,就改成了这种, 相对稳定了很多。

 

CFLAGS="-march=pentium-m -mtune=pentium-m -O2 -pipe -fomit-frame-pointer -mmmx -msse -msse2"

 

而LDFLAGS,大致上分为两种

一种是

LDFLAGS = "-Wl,-O1 -Wl,-z combreloc,--relax -Wl,--enable-new-dtags -Wl,--sort-common -s"

 

还有一种是

LDFLAGS="-Wl,-O2"

 

从配置两上,其实就可以看出,第一种的优化深度要高得多。

但由于第一次的尝试,为了稳定期间,还是选用了第二种。

 

从以上的编译优化,可以看出,gentoo对系统的定制程度是非常高的。

只是限于对gcc的了解程度不够,汗。

不过,优化后,测试了一下php的编译速度,比以前快乐一些,还算比较满意,没有白忙活。

 

 

 

 

评论
galaxystar 2008-06-25
引用
你还可以改成 -O3 这个应该代码优化程度更高,就是编译速度会很慢。

牺牲稳定性,还是有点悬
theone 2008-06-24
你还可以改成 -O3 这个应该代码优化程度更高,就是编译速度会很慢。
发表评论

您还没有登录,请登录后发表评论

相关讨论