在InvokeCompilerPassW期间,cl.exe花费了很长时间

时间:2020-04-22 22:58:38

标签: c windows visual-studio visual-c++ cmake

我有一个使用Linux和Windows构建的CMake项目。该项目会自动使用CPack生成软件包,而当我使用

进行构建时

cmake --build . --config Release --target package

将触发完整编译。在Linux上,完整的编译过程(大约1万行C)需要大约1分钟的时间。在Windows上,需要25分钟或更长时间。

我启动了Process Explorer,并发现了以下内容:

cl.exe slowdown stack trace

cl.exe slowdown cpu time

我可能在解释这个错误,但是好像o_strcat_s占用了我10%以上的CPU时间。字符串串联应该是线性时间,但是看起来每次传递都必须重新分配越来越多的内存才能实现串联(请参阅RtlReAllocateHeap)。为什么是这样?像这样从命令行调用cl.exe时,运行如此缓慢的原因是什么?

如果有帮助,我正在使用Visual Studio生成器。

0 个答案:

没有答案