Viusal C++.NET的优化代码
2008-11-24 19:37:31 来源:WEB开发网mov eax, DWORD PTR _i$[esp-4]
imul eax, 15
当使用"/G7"时,生成了更快(可惜更长)的代码,它没用imul(乘)指令,在Pentium 4上执行只需要14个周期。目标代码如下:
mov ecx, DWORD PTR _i$[esp-4]
mov eax, ecx
shl eax, 4
sub eax, ecx
第二个优化选项是"/arch:[argument]",用它可对SSE或SSE2优化,生成使用Streaming SIMD Extensions (SSE) 和 Streaming SIMD Extensions 2 (SSE2) 指令集的程序。当使用"/arch:SSE"选项时,目标代码只能运行在支持SSE指令(如:CMOV, FCOMI, FCOMIP, FUCOMI, FUCOMIP)的CPU上。当使用"/arch:SSE2"选项时,目标代码只能运行在支持SSE2指令集的CPU上。
相比于"/G7",使用了SSE或SSE2优化的程序,一般能减少2-3%的运行时间,个别测试中甚至能减少5%的运行时间。
使用"/arch:SSE"可得到以下效果:
1。在使用单精度浮点数时,使用SSE指令对其处理。
2。使用CMOV指令,它最早被Pentium Pro支持。
3。使用FCOMI, FCOMIP, FUCOMI, FUCOMIP指令,它们也是最早被Pentium Pro支持的。
使用"/arch:SSE2"的话,可以得到所有"/arch:SSE"选项的效果,另外还有以下几个效果:
1。在使用双精度浮点数时,使用SSE2指令对其处理。
2。使SSE2指令集做64位切换。(原文:Making use of SSE2 instructions for 64-bit shifts)
还有其它的好处,在同时使用"/arch:SSE"或"/arch:SSE2” 和 "/GL"(全程优化)选项选项时,编译器会对浮点参数和浮点返回值做函数调用规则优化。
- ››优化精髓之商业性网站常遇见的问题和误区
- ››Netpas加速 让非电信宽带用户流畅上网
- ››net中fckediter的图片上传时候点击\浏览服务器\出...
- ››优化增强您的Visual C++应用程序
- ››Netmsg局域网聊天程序
- ››NetAirus指控苹果iPhone侵犯其专利
- ››优化Windows 7错误报告弹出提示窗口
- ››优化您的 Apache Geronimo 发行版
- ››Netflix 在线影视播放程序将登陆 iPhone
- ››优化迅游设置,台服魔兽全面加速
- ››Net中各种不同的对象创建方式的速度差异
- ››NetNewsWire 功能简单 界面快速 Reader 浏览器
更多精彩
赞助商链接