|
|
发表于 2008-5-2 03:50:12
|
显示全部楼层
最终报告:
-O2 -march=pentium-m -pipe====================>9.3"
-O2 -march=pentium-m -pipe -fomit-frame-pointer========>9.4+"
-O2 -march=i686 -mtune=generic -pipe===============>9.3"
-O2 -march=i686 -mtune=generic -pipe -fomit-frame-pointer==>8.8"
-O2 -march=native -pipe========================>9.3"
-O2 -march=native -pipe -fomit-frame-pointer===========>8.8"
这样终于明朗化了,-fomit-frame-pointer可以起到关键的作用,但第二组的结果让我很意外。
结论:i686下,非多媒体程序(即采用sse指令的如mplayer, audacious等),除了上面所列的第二组是例外,源里所打的包与自己用所谓的-march最优化参数编译的并无区别,-fomit-frame-pointer参数在不少情况下会有提升,但不明显(%5左右),而该参数在x86_64下默认是开启的,也即是说,64位的源已经对绝大多数程序作出了优化,包括默认打开了sse2。据我所知,好像还没有一个程序支持sse2+的指令,用64位系统的同学们欢呼吧~不必羡慕什么gentoo榨干机器的油水,arch万岁!
希望看到64位系统下的测试,如果wiki所说属实,那么应该不会有什么区别。 |
|