gpt4 book ai didi

visual-studio-2008 - MSBuild 没有构建所有内核

转载 作者:行者123 更新时间:2023-12-04 14:10:54 26 4
gpt4 key购买 nike

我有一个配置了 Visual Studios 2008 的项目。当我打开 IDE 并点击构建时,我系统上的所有内核都用于构建该项目。但是,当我尝试从命令行构建时,只使用了 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])

现在,如果您的解决方案不允许并行构建项目,例如因为您的每个项目都依赖于另一个项目(例如构建 P2 需要 P1,项目 P3 需要 P2,等等。 ) 你不会看到任何并行构建发生。根据构建完成的速度,您也不会在所有内核上看到任何相关事件(例如使用任务管理器),因为 CPU 图形的“闪烁”可能并不真正准确地说明正在发生的事情(注意构建是也相当 I/O 密集型,这不会显示查看 CPU 负载)。

但是,您应该看到(例如使用 Process Explorer 或任务管理器)许多 msbuild.exe 进程与您拥有的核心/CPU 数量(或您拥有的等效数量)相匹配作为可选数字传递给 /m 选项。

您可能还想引用 this SO question .此外,搜索“parallel msbuild”会产生一些包含更多信息的不错结果。

关于visual-studio-2008 - MSBuild 没有构建所有内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10423390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com