2010-06-01 47 views
1

我讀了一些關於預編譯頭文件的問題,但找不到直接的答案。預編譯頭文件有助於重建嗎?

我通常重建我的整個Visual Studio 2010解決方案。

我解決方案中的一個項目是一個C++/CLI項目。

我認爲在該項目中使用預編譯頭可以提高編譯速度。

經過一些實驗後,似乎使用預編譯頭只會減慢重建過程。

預編譯頭文件是否僅對沒有完全清理舊文件的版本有幫助?

編輯

例如,假設我StdAfx.h中只有1行:

#include <string> 
+1

請不要讓我們猜測你的stdafx.h文件的內容。 – 2010-06-01 20:45:34

+0

我已更新該問題。其實,我的問題是通用的。當我進行重建時,預編譯頭文件可以使編譯速度更快,還是總是重新編譯預編譯頭文件,使其只能變慢? – brickner 2010-06-02 05:37:24

回答

4

這要看!

對於重建,這是編譯預編譯頭部的額外成本和不必爲每個源重新解析這些頭部的速度之間的折衷。

如果您的許多源文件在預編譯頭文件中使用了許多相同的頭文件,則應該會看到一些好處。否則,由於攜帶一整套頭文件和擁擠的全局名稱空間,您應該幾乎看不到加速,或者更糟糕的是,速度減慢。

+1

我從來沒有見過減速。但我認爲它可能在某些特定情況下。 – 2010-06-02 06:01:34