我有一个使用Linux和Windows构建的CMake项目。该项目会自动使用CPack生成软件包,而当我使用
进行构建时 cmake --build . --config Release --target package
,
将触发完整编译。在Linux上,完整的编译过程(大约1万行C)需要大约1分钟的时间。在Windows上,需要25分钟或更长时间。
我启动了Process Explorer,并发现了以下内容:
我可能在解释这个错误,但是好像o_strcat_s
占用了我10%以上的CPU时间。字符串串联应该是线性时间,但是看起来每次传递都必须重新分配越来越多的内存才能实现串联(请参阅RtlReAllocateHeap
)。为什么是这样?像这样从命令行调用cl.exe
时,运行如此缓慢的原因是什么?
如果有帮助,我正在使用Visual Studio生成器。