我正在使用噩梦糟糕的MS测试框架运行Visual Studio 2008。麻烦的是,它将我的CPU发送到100%(四核上的25%)。
我的问题是为什么Visual Studio不能在多个核心上运行?当然M $必须有足够的线程处理才能使其正常工作。
答案 0 :(得分:10)
我在所有4个CPU上运行VS2008。只需设置此环境变量/项目标志。
/ MP
(可在C / C ++设置中设置,高级。在项目设置中)
编辑:MP标志也可以接受一个号码,例如/ MP2这意味着它只能在2个核心上运行。将其保留为/ MP意味着它将在最大核心数量上运行。
Edit2:MP标志可能仅适用于编译器。
答案 1 :(得分:6)
您可以要求VS并行编译多个项目以及在项目中并行编译(!?)。
工具>选项>项目和解决方案>建立最大并行项目数。
这也将并行构建C ++和C#!
答案 2 :(得分:4)
如果有人遇到这个老问题,VS2012将并行版本引入为standard feature。引用文章:
Visual Studio 2010包含“最大并行数”选项 项目建设。“虽然没有任何限制的迹象, 此IDE选项仅适用于C ++项目。幸运的是,这个 限制不再适用于Visual Studio 11.相反,现在已经存在 完全支持其他语言的并行构建。查看 这个,同时运行一个Process Explorer的副本一个解决方案 许多项目正在建设中。你会看到多个MSBuild 创建实例 - 与“最大数量”中指定的数量一样多 平行项目建设。“
答案 3 :(得分:3)
现在 Visual Studio 2010 已经发布了一段时间,请考虑升级以使用MSTest的parallelTestCount
文件中的.testsettings
属性,如{{3 }}
有一些限制,例如:
示例,使用 0 表示自动检测(默认为 1 ):
<?xml version="1.0" encoding="UTF-8"?>
<TestSettings
name="Release"
id="{GUID}"
xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Description>
These are default test settings for a local test run.
</Description>
<Execution parallelTestCount="0">
(...)
</Execution>
</TestSettings>
一些博客已经注意到您可能必须关闭并重新打开项目,以便Visual Studio注意到您添加/更改了该属性。此外,如果使用GUI编辑测试设置文件,则可能需要重新添加parallelTestCount
属性。
答案 4 :(得分:2)
我们还为命令行上的多线程构建添加了多个核心支持,为那些拥有大量项目和长构建时间的人提供支持。启用多核心支持只需要几个新属性,MSBuild管理所有工作以高效且有效地安排项目。 MSBuild团队通过在64 CPU机器上构建一些项目来测试这种扩展能力。
所以他们开始这样做了,至少对于构建而言。
答案 5 :(得分:0)
/ MP标志仅用于构建,我们至少根据此msdn
现在我很想对它做错,但我很确定它只适用于构建。这当然还是非常有用的。
答案 6 :(得分:0)
我确定这很难。巨大的现有GUI重型非线程代码库到多线程。对我来说听起来像是10个。
但是 它似乎对我使用多核。 Intellesense似乎有线程。构建系统具有多项目构建和C ++多文件构建。
这些工具的问题听起来比他们使用CPU的程度要好得多。
答案 7 :(得分:0)
对于Visual Studio 2010转到工具&gt;选项&gt;项目&amp;解决方案&gt;建立并运行。
然后,您将看到一个条目,用于输入最大并行项目构建数量的数字&#39 ;;我的电脑有一个i7-3770 CPU,一个带超线程的四核,所以设置为8。
有关不同版本Visual Studio的信息,请转到此处并选择您的版本:https://msdn.microsoft.com/en-us/library/cyhcc7zc(v=vs.100).aspx
e.g。对于Visual Studio 2010,此属性仅影响C ++构建:
指定可以同时构建的最大Visual C ++项目数。要优化构建过程,最大并行项目构建数将自动设置为计算机的CPU数。最大值为32。
但是对于Visual Studio来说,它适用于C ++和C#:
并行项目构建的最大数量 指定可以同时构建的Visual C ++和Visual C#项目的最大数量。要优化构建过程,最大并行项目构建数将自动设置为计算机的CPU数。最大值为32。