LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 685|回复: 2

关于“由外至内加速你的Linux”折腾指南连载C的问题!

[复制链接]
发表于 2009-6-7 21:31:09 | 显示全部楼层 |阅读模式
由外至内加速你的Linux”折腾指南连载C
http://www.linuxsir.cn/bbs/thread350004.html
里面有如下一段:

乙.确定优化参数
优化编译,关键就在优化参数,设定好了以后后面一直用了。
参数2. CFLAGS
这是关键中的关键了,它把各种优化参数传给编译器(gcc),在编译时实现优化。
gcc 4.2 以上,-march=native -mtune=native 这两者是必要的优化参数,不管你32位64位AMD/Intel/等等什么的 CPU。
先 cat /proc/cpuinfo
看 flags 开头那一行。比如说,这一行里面如果有 mmx sse sse2 pni ssse3 sse4_1 这种指令集字符,可以 CFLAGS 参数里面分别对应加入 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 。如果有 3dnow (AMD CPU)那就是 -m3dnow 了。



我的flags这一行如下:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs

我的问题是:是不是flags里只要有的,就去[url]http://gcc.gnu.org/onlinedocs/gcc-4....002d64-Options 里找,有的话就加上去?
如第一个“fpu",在http://gcc.gnu.org/onlinedocs/gcc-4....002d64-Options里有个对应的“mfpu",这样是不是就要在CFLAGS参数里加上“-mfpu” ?
还是只要选择性的找几个加就行了?请大家教导!
发表于 2009-6-8 13:29:02 | 显示全部楼层
-march=native -mfpmath=sse 就可以了。其它的不需要。

-march=native 自动检测所支持的sse 指令集类型,-mfpmath=sse 自动使用检测出的最高sse指令集。足够了。mmx和3dnow这种淘汰产品早就不用了。

至于检查机器是否支持sse,个人觉得没有任何必要,现今基本上完全找不到不支持sse指令的cpu了。(Intel是奔三及以上的产品都支持sse,AMD是K7以上的产品都支持)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-8 19:45:51 | 显示全部楼层
Post by poet;1995444
-march=native -mfpmath=sse 就可以了。其它的不需要。

-march=native 自动检测所支持的sse 指令集类型,-mfpmath=sse 自动使用检测出的最高sse指令集。足够了。mmx和3dnow这种淘汰产品早就不用了。

至于检查机器是否支持sse,个人觉得没有任何必要,现今基本上完全找不到不支持sse指令的cpu了。(Intel是奔三及以上的产品都支持sse,AMD是K7以上的产品都支持)



     我的CPU是AMD X3 8650的,
     意思是说在CFLAGS 参数里面只要加上-march=native -mfpmath=sse 就可以了,别的不用了是吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表