我有当我打开IDE和击筑,都在我的系统内核来构建项目视觉工作室2008年配置的项目。 然而,当我尝试在命令行只有1个核心被用于建造。 下面是我运行下面的命令:
C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild VTK.sln /m /fl /tv:3.5 /p:Configuration=RelWithDebInfo
从阅读的文档,它会出现/ m开关应该告诉的MSBuild使用所有的内核,但事实并非如此。 任何想法如何使其使用所有的核心?
谢谢
好吧,其实/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”产生更多的信息,一些好的命中。