2009-02-17 49 views
6

我有一個C++代碼,我正在使用VC7進行編譯,並且花費大量時間來構建它。有沒有什麼辦法可以分析它並找出爲什麼它需要時間來構建?分析編譯時間

回答

9

在Visual Studio 2008中,有一個打開構建時間的設置。它可能在VC7在那裏,以及...

Tools/Options/Projects and Solutions/VC++ Project Settings/Build Timing:Yes

這也適用於C++項目,(如VS2008的)不使用的MSBuild。對於基於MSBuild的項目(如C#),你想增加詳細程度:

Tools/Options/Projects and Solutions/Build and Run/MSBuild project build output verbosity

默認情況下,它被設置爲 「最小」。

3

是網絡上的源代碼嗎?這有時會減慢編譯速度。

+0

是的,它是在明確的源代碼管理下。 – Naveen 2009-02-17 10:27:41

+0

使用本地快照視圖進行構建。 – 2009-02-17 10:29:30

+0

永遠不要使用源代碼的動態視圖。它比它的價值更麻煩。 – shoosh 2009-02-17 10:32:18

1

我的猜測是,這將是很難從分析有用的結果。您可以查看每個.obj文件的創建時間,並檢查是否有任何文件特別慢,但我懷疑是這種情況。

您是否已經通過編譯器選項(如預編譯頭文件)來查看提供的改進?同樣,關閉不需要的優化器可以顯着加快構建速度。我的建議是花一些時間來嘗試一些「假設」的情況。

4

如果代碼是模板密集型的,那麼您可以嘗試執行模板實例化分析。史蒂文渡邊想出profiler,如果我沒有記錯,它應該與VS(不知道版本)。

1

如果您的代碼廣泛使用模板,您可能會對Templight感興趣,這是一個由匈牙利研究團隊開發的用於調試和分析C++模板元程序(paper)的工具。它似乎很有前途,但我不確定該工具是否可供下載...