VC++程式碼執行速度優化
本文主要整理MSDN幾篇關於VC++編譯器優化的幾篇文章,試驗並總結了一個簡單易用的VC++程式碼優化的攻略。
一、基礎知識
VC++程式碼優化分為兩類:程式碼大小優化和程式碼速度優化。本文主要關注程式碼速度優化,在某些需要高效率的應用場景下,程式碼的執行速度有極大的應用價值 。
二、按配置檔案優化
按配置檔案優化可以優化輸出檔案,其中優化程式使用的資料是通過對 .exe 或 .dll 檔案進行測試執行得到的。 這些資料表示程式在生產環境中可能採用的執行方式。按配置優化僅可用於 x86 或 x64 本機目標。
MSDN介紹了兩種“按配置檔案優化”的方法:一是使用PGO外掛;二是手動設定“編譯器”和“偵錯程式”的優化開關。
參考連結:https://msdn.microsoft.com/zh-cn/library/e7k32f4k.aspx
兩種方法殊途同歸,都是要按一定步驟設定編譯器和偵錯程式的優化開關,包括:
1)連結器:LTCG “連結時間程式碼生成”
2)編譯器:GL “全程式優化”
3)編譯器:O2 “使速度最大化”
使用PGO外掛的話,可以參考:https://msdn.microsoft.com/zh-cn/library/dn457343.aspx
該連結用中提供了PGO外掛的下載連結和一個演示示例。一般來說,我們只需要選擇VS的選單欄“生成->配置管理器->Release”,上述的這些編譯器和連結器開關已預設開啟。如果需要更進一步優化,則可以使用PGO外掛,在目標機器上模擬執行和訓練它配置最優。
三、知識擴充套件
MSDN上有一篇將程式碼優化的理論文章:《每個程式設計師都應當知道的編譯器優化知識》
https://msdn.microsoft.com/zh-cn/magazine/dn904673.aspx
此外,一些編碼技巧也可以提升程式碼速度,參考文章:
http://www.cnblogs.com/lizhenghn/p/3969531.html