最佳化程式碼
藉由優化可執行檔,您可以在快速執行速度和小型程式代碼大小之間取得平衡。 本主題討論Visual Studio提供的某些機制,以協助您優化程序代碼。
語言功能
下列主題描述 C/C++ 語言中的一些優化功能。
最佳化 Pragma 和關鍵字
您可以在程式代碼中使用的關鍵詞和 pragmas 清單,以改善效能。
依分類排列的編譯器選項
特別影響執行速度或程序代碼大小的 /O 編譯程式選項清單。
右值參考宣告子:&&
右值參考支持行動語意的實作。 如果使用行動語意來實作範本連結庫,則使用這些範本的應用程式效能可以大幅改善。
優化 pragma
如果程式代碼的優化區段造成錯誤或速度變慢,您可以使用 優化 pragma 來關閉該區段的優化。
將程式代碼括在兩個 pragmas 之間,如下所示:
#pragma optimize("", off)
// some code here
#pragma optimize("", on)
程序設計實務
當您使用優化編譯程式代碼時,您可能會注意到其他警告訊息。 這是預期的行為,因為某些警告只與優化程式代碼有關。 如果您注意這些警告,您可以避免許多優化問題。
以悖論方式,優化速度的程式可能會導致程序執行速度變慢。 這是因為速度的一些優化會增加程序代碼大小。 例如,內嵌函式可消除函數調用的額外負荷。 不過,內嵌太多程式代碼可能會讓您的程式變得如此之大,以至於虛擬記憶體頁面錯誤的數目會增加。 因此,從排除函式呼叫中獲得的速度可能會遺失至記憶體交換。
下列主題討論良好的程序設計做法。
改善時間關鍵程式碼的秘訣
更好的程式代碼撰寫技術可產生更佳的效能。 本主題會建議程式代碼撰寫技術,以協助您確定程式代碼中時間關鍵部分能順利執行。
最佳化最佳做法
提供如何優化應用程式的一般指導方針。
偵錯優化程序代碼
由於優化可能會變更編譯程式所建立的程式代碼,因此建議您對應用程式進行偵錯並測量其效能,然後優化程序代碼。
下列主題提供如何偵錯發行組建的相關信息。
下列主題提供如何優化建置、載入和執行程式代碼的相關信息。
本節內容
最佳化 Pragma 和關鍵字
改善編譯器輸送量
浮點數會失去精確度的原因
IEEE 浮點表示
改善時間關鍵程式碼的秘訣
使用不帶 () 的函式名稱不會產生程式碼
最佳化最佳做法
特性指引最佳化
特性指引最佳化的環境變數
PgoAutoSweep
pgomgr
pgosweep
如何:將多個 PGO 設定檔合併至單一設定檔