的MSBuild不是所有的核心建筑(MSBuild not building with all co

2019-09-16 23:30发布

我有当我打开IDE和击筑,都在我的系统内核来构建项目视觉工作室2008年配置的项目。 然而,当我尝试在命令行只有1个核心被用于建造。 下面是我运行下面的命令:

C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild VTK.sln /m /fl /tv:3.5 /p:Configuration=RelWithDebInfo

从阅读的文档,它会出现/ m开关应该告诉的MSBuild使用所有的内核,但事实并非如此。 任何想法如何使其使用所有的核心?

谢谢

Answer 1:

好吧,其实/m选项指定“并发进程建立与最大数量”。 也就是说,最大数量msbuild.exe过程开始并行构建并行的项目(每个进程最多将建立一个项目)。 东西比“使用所有核心”完全不同。 虽然,不可否认,长期形成的名称/m选项, /maxcpucount可能暗示,否则,它的描述应该给正在发生的事情的一个更好的指标:

  /maxcpucount[:n]   Specifies the maximum number of concurrent processes to
                     build with. If the switch is not used, the default
                     value used is 1. If the switch is used without a value
                     MSBuild will use up to the number of processors on the
                     computer. (Short form: /m[:n])

现在,如果您的解决方案不允许项目并行构建,例如因为每个项目的是一个又一个的依赖(如P1需要建立P2,P2需要项目P3等),你赢了“看不到任何并行编译发生。 这取决于如何快速构建完整的,你也不会看到所有的内核任何相关活动(例如,使用任务管理器),因为“闪烁” CPU的图形可能实际上并不准确,因为是怎么回事真的就(介意一个版本是也挺I / O密集型的,这并不表明在看CPU负荷)。

你应该,但是,看到(例如,使用处理资源管理器或任务管理器)的一些msbuild.exe匹配的核心数/ CPU,还具有工序(或当量数您传递作为可选号码到/m选项。

您也可以指这太问题 。 同时搜索“并行的MSBuild”产生更多的信息,一些好的命中。



文章来源: MSBuild not building with all cores