在VS2008上使用预编译标题需要更长时间

时间:2012-05-30 05:22:13

标签: visual-studio-2008 visual-c++

我试图在我的解决方案中使用PCH来缩短编译时间,但令人难以置信的是, 没有相比,需要的时间是的两倍多。这是统计数据:

在i7上运行8GB的Windows 7 x64

示例项目:235个cpp文件,总共4.5 MB源代码(使用MFC)

PCH需要13:55分钟

没有PCH需要6:15分钟

我非常确定我正确使用它们,项目设置为在项目级别使用预编译标题,并且StdAfx.cpp设置为通过StdAfx.h创建预编译标题

所有标准#includes都放在StdAfx.h中,所有cpp文件都以

开头

#include" StdAfx.h"

我无法理解它。任何人都有想法可能会发生什么,或者我怎么会开始尝试解决它?

1 个答案:

答案 0 :(得分:0)

所以我最终解决了这个问题。我的解决方案结构如下:

C:\数据\总线\ VS \项目\ Solution.sln
C:\ DATA \公交车\ VS \项目\ Proj1 \
C:\ DATA \公交车\ VS \项目\ Proj2 \
C:\ DATA \公交车\ VS \项目\ Proj3 \

因为这些一直在使用,所以我已经映射了一个驱动器号:

P = C:\ Data \ Bus \ VS \ Projects \

到此区域,以便使用以下内容更轻松地访问解决方案:

,P:\ Solution.sln
病人:\ Proj1 \
病人:\ Proj2 \
警:\ Proj3 \

我发现VS2008不喜欢通过映射的驱动器号(P)打开解决方案,这是PCH发生速度较慢的地方。

但是,如果我使用完整路径直接打开C驱动器,PCH可以提供出色的速度优势。

有人对此有任何想法吗?我只能认为驱动器别名给了VS错误的印象,即PCH总是过时,所以它会用每个文件重建它。非常神秘。