我正在用Visual Studio编译大约100个C++项目的大型解决方案。在编译过程中,内存,CPU,磁盘和以太网都不会使用到接近100%的任何地方(根据任务管理器性能选项卡)。 CPU通常低至25%,内存磁盘利用率似乎低至5-10%。为什么在Visual Studio编译过程中某些资源不能达到100%?
因此,如果没有资源被100%利用,瓶颈是什么?什么限制了我的编译速度?我真的希望它是CPU。但它似乎不是。
我可能测量不正确?编译时我应该期望什么是限制性资源?我怎样才能加快速度?如果还有其他限制(比如RAM,但是通过缓存或其他方式进行I/O),那么测量瓶颈的正确工具/方法是什么?
附加信息:我当然使用并行项目最大数目来构建 = 8.还汇编所有Visual C++的项目被使能的多处理器。我的机器有8个逻辑处理器。所以我真的认为我不只是最大化一个核心。这将在我的机器上表现为12.5%的使用率(我通常会看到单线程应用程序)。
https://i.imgur.com/CRLzESV.png –
4核机器上的25%可能意味着一个内核已被占用。您是否启用了[多处理器编译](https://blogs.msdn.microsoft.com/vcblog/2017/02/14/vcpkg-recent-enhancements/)或[here](https://msdn.microsoft.com/ EN-US /库/ bb385193.aspx)? –
我刚刚尝试用一些100个文件重建一个C项目。花了25s。多处理器选项没有太大影响(低于5%)。在我的8核心机器上,4个核心处于活动状态,但其中没有一个接近100%。整体利用率保持在25%左右。所以,你的问题是有道理的。 –