1. 程式人生 > >VC++程式碼執行速度優化

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