Visual studio 2008 在VS2008中使用预编译头需要更长的时间
我试图在我的解决方案中使用PCH来缩短编译时间,但令人难以置信的是,与未使用PCH相比,它需要的时间是使用PCH的两倍多。以下是统计数据: 在i7上运行8GB的Windows 7 x64 示例项目:235个cpp文件,共4.5MB源代码(使用MFC) 使用PCH需要13:55分钟 没有PCH需要6:15分钟 我很确定我正确地使用了它们,项目设置为在项目级别使用预编译头,StdAfx.cpp设置为通过StdAfx.h创建预编译头 所有标准#include都放在StdAfx.h中,所有cpp文件都以开头 #包括“StdAfx.h”Visual studio 2008 在VS2008中使用预编译头需要更长的时间,visual-studio-2008,visual-c++,Visual Studio 2008,Visual C++,我试图在我的解决方案中使用PCH来缩短编译时间,但令人难以置信的是,与未使用PCH相比,它需要的时间是使用PCH的两倍多。以下是统计数据: 在i7上运行8GB的Windows 7 x64 示例项目:235个cpp文件,共4.5MB源代码(使用MFC) 使用PCH需要13:55分钟 没有PCH需要6:15分钟 我很确定我正确地使用了它们,项目设置为在项目级别使用预编译头,StdAfx.cpp设置为通过StdAfx.h创建预编译头 所有标准#include都放在StdAfx.h中,所有cpp文件都以
我搞不懂。有人知道会发生什么,或者我会如何开始尝试解决它吗?所以我最终解决了这个问题。我的解决方案的结构如下: C:\Data\Bus\VS\Projects\Solution.sln
C:\Data\Bus\VS\Projects\Proj1\
C:\Data\Bus\VS\Projects\Proj2\
C:\Data\Bus\VS\Projects\Proj3\
等 因为它们一直在使用,所以我映射了一个驱动器号: p=C:\Data\Bus\VS\Projects\ 使用以下工具访问此区域,以便更轻松地访问解决方案: p:\Solution.sln
P:\Proj1\
P:\Proj2\
P:\Proj3\
我发现VS2008不喜欢通过映射的驱动器号(p)打开解决方案,这就是使用PCH进行较慢构建的地方 但是,如果我打开一个完整的路径直接到C驱动器,PCH提供了极好的速度优势
有人知道这件事吗?我只能认为驱动器别名给VS一个错误的印象,即PCH总是过时,因此它会用每个文件重建它。非常神秘。您是否尝试使用GCC(即
g++
)并使用g++
预编译StdAfx.h
头文件?嗨,Basile,我不使用GCC,只使用标准VS2008工具。您的想法是什么,您的测试会有什么帮助?也许对于您的特定情况,GCC在预编译头上可能会做得更好(我不知道,只是建议尝试一下)。