如何使用叮当加快编译速度? 我有一个Visual Studio 2019 C++项目,我正在转换成CLAN,我注意到CLAN版本编译得慢了很多,正如>FFTEng/交换机所说的,平均来说,CLAN编译大约需要1700毫秒,而VS2019版本只需要1150毫秒编译。不涉及预编译头

如何使用叮当加快编译速度? 我有一个Visual Studio 2019 C++项目,我正在转换成CLAN,我注意到CLAN版本编译得慢了很多,正如>FFTEng/交换机所说的,平均来说,CLAN编译大约需要1700毫秒,而VS2019版本只需要1150毫秒编译。不涉及预编译头,c++,visual-c++,compilation,clang,compilation-time,C++,Visual C++,Compilation,Clang,Compilation Time,请注意,我通过使用以下(最相关的)标志直接调用clang++.exe直接从命令行构建clang版本: VS2019版本使用以下标志: /permissive- /GS /W3 /Zc:wchar_t /Qspectre /Zi /Gm- /Od /sdl /Fd"x64\Debug\vc142.pdb" /Zc:inline /fp:precise /D "_DEBUG" /D "GAMECODE_EXPORTS" /D "_WINDOWS" /D "_USRDLL

请注意,我通过使用以下(最相关的)标志直接调用
clang++.exe
直接从命令行构建clang版本:

VS2019版本使用以下标志:

/permissive- 
/GS 
/W3 
/Zc:wchar_t 
/Qspectre 
/Zi 
/Gm- 
/Od 
/sdl 
/Fd"x64\Debug\vc142.pdb" 
/Zc:inline 
/fp:precise 
/D "_DEBUG" 
/D "GAMECODE_EXPORTS" 
/D "_WINDOWS" 
/D "_USRDLL" 
/D "_WINDLL" 
/D "_UNICODE" 
/D "UNICODE" 
/errorReport:prompt 
/WX- 
/Zc:forScope 
/RTC1 
/Gd 
/MDd 
/std:c++14 
/FC 
/Fa"x64\Debug\" 
/EHsc 
/Fo"x64\Debug\" 
/debug
/diagnostics:column 

是什么导致了如此巨大的差异,使VS2019更快?MsBuild是否做了一些特殊的事情来加快编译速度,而我对clang编译器的简单命令行调用没有做到这一点?

您似乎没有使用
/debug
。没错,我添加了
/debug
,但是MSVC.AFAIK的编译时间没有改变,
/debug
实际上是
/debug
,所以这没什么区别。使用小写的
/debug
。这似乎也不会增加任何额外的时间。然而,我尝试在VS中使用
clang cl
工具链进行编译,构建时间看起来与我在命令行中从clang获得的非常相似。所以,在Windows上,clang似乎有点慢。为什么编译时间很重要?2秒的构建时间非常短(从its中尝试buildijng
clang
;这可能需要几个小时)。我写的程序需要一个小时的CPU时间来构建。顺便问一下,您是否尝试在Linux发行版上使用
clang
?这可能有点快。你似乎没有使用
/debug
。你是对的,我添加了
/debug
,但是MSVC.AFAIK的编译时间没有改变,
/debug
实际上是
/debug
,所以没有什么区别。使用小写的
/debug
。这似乎也不会增加任何额外的时间。然而,我尝试在VS中使用
clang cl
工具链进行编译,构建时间看起来与我在命令行中从clang获得的非常相似。所以,在Windows上,clang似乎有点慢。为什么编译时间很重要?2秒的构建时间非常短(从its中尝试buildijng
clang
;这可能需要几个小时)。我写的程序需要一个小时的CPU时间来构建。顺便问一下,您是否尝试在Linux发行版上使用
clang
?可能会快一点
/permissive- 
/GS 
/W3 
/Zc:wchar_t 
/Qspectre 
/Zi 
/Gm- 
/Od 
/sdl 
/Fd"x64\Debug\vc142.pdb" 
/Zc:inline 
/fp:precise 
/D "_DEBUG" 
/D "GAMECODE_EXPORTS" 
/D "_WINDOWS" 
/D "_USRDLL" 
/D "_WINDLL" 
/D "_UNICODE" 
/D "UNICODE" 
/errorReport:prompt 
/WX- 
/Zc:forScope 
/RTC1 
/Gd 
/MDd 
/std:c++14 
/FC 
/Fa"x64\Debug\" 
/EHsc 
/Fo"x64\Debug\" 
/debug
/diagnostics:column