代碼優化方法物業
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人未成年,男方一臉無所謂,女方面無表情