代码优化方法物业
VC编译器可以对特定函数进行优化选项!
比如,如果你发现fiddle()函数被调用的频率很高,那你就可以让编译器只对这个函数进行最快速度优化,这样:
#pragma optimize(\"t\", on)
int fiddle(S *p)
{
…;
}
#pragma optimize(\"\", on)
除了\"/O1\"和\"/O2\"以外,还有\"/Ox\"选项,它很与\"/O2\"效果相同,而\"/Ox\"与\"/Os\"组合则与\"/O1\"效果相同。我们推荐使用\"/O1\"和\"/O2\",而不是用\"/Ox\"。
至此,我们讨论了\"/G7\",\"/arch\"和\"/GL\"优化选项。
除了上面介绍的,VC还提供了两个:
1./GA 优化静态线程局部存储。(不要用于DLL project,用了也没效果)
2./Gr 使用__fastcall作默认调用规则,这代表头两个参数会用寄存器传送(如果参数能装进寄存器)。
另外的一个选项是\"/opt:ref\",用它可以通知连接器,在连接时去掉没被调用的函数和没被使用的数据。用\"/opt:icf\"选项能合并相同函数(比如你的程序可能通过模板展开了好几遍),这时优化也能减小程序的尺寸。
Visual C++ .NET中的优化改进
铁路客票系统监控中心大屏幕上显示全国各地当日火车票预售情况。新京报侯少卿摄 这儿有3个重要的优化选项,你可以把它们用在 2003的项目中。虽然 2002也提供了这些选项,但 2003对它们做了性能上的改进。
下表简要的描述了它们,如果你想了解更详细的内容,请查阅VC所带的文档。
选项效果/RTC1使用无优化的Debug模式,编译器插入动态检测代码以帮助你发现程序中的错误。比如你没有初始化的内存,或者你把__stdcall和__cdecl弄混了。
/GS加入检测静态缓冲区(栈)溢出的代码,黑客就不能覆盖函数返回的地址以执行恶意代码。
注意:这不意味着你可以高枕无忧,你仍要留心编写安全的代码! /Wp64 检测生成64位代码的问题,通过它你可以发现移植到64位环境下你的代码可能出现的问题。
结论
2003引入了两个新的优化选项,同时也改进了 2002中的几个优化的性能,希望你能通过 2003的优化选项来提高你程序的质量。 查看本文来源
攀枝花治疗白癜风医院费用海口医院男科
天津正规不孕不育医院
- 《霸王别姬》杀青宴上,张国荣怒怼男演员:你要再打她我就拦住你
- 教育部:切实做好全国返校离校返乡疫情防控工作
- 传说中的“天选之子”?一考生选择题全选B,最高分出来后傻眼了
- (月相)让腕表变得有为
- 疏堵保供 | 工业和产业化部:多措并举 确保产业链供应链稳定畅通
- 内蒙古金融系统靠前服务借此机会稳企纾困
- 玉龙股份:子公司拟以9.03亿元购入NQM Gold100%股权
- 小个子男生夏季穿搭,学学这3个显高技巧,轻松拥有大长腿
- 宁波市象山县在集中隔离点发现1例肺炎病例
- 腊肉冷冻1年了,还可以吃吗?不懂慢看看,为了健康,记住2个时间
- 夏天穿戴T恤,别总穿戴黑白灰,这3种“流行色”才高级,衬肤又显白
- 73年前紧接著包办婚礼:2人未成年,男方一脸无所谓,女方面无表情