为什么Visual Studio不能在多个核心上运行? CPU为25%

时间:2008-09-10 12:52:04

标签: visual-studio visual-studio-2008

我正在使用噩梦糟糕的MS测试框架运行Visual Studio 2008。麻烦的是,它将我的CPU发送到100%(四核上的25%)。

我的问题是为什么Visual Studio不能在多个核心上运行?当然M $必须有足够的线程处理才能使其正常工作。

8 个答案:

答案 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 }}

有一些限制,例如:

  1. 仅支持简单的单元测试(即不包括编码的UI测试和ASP.NET托管的测试)
  2. 测试必须是线程安全的(所有测试都在同一个过程中运行)
  3. 您无法同时收集代码覆盖率(以及其他数据和诊断)
  4. 示例,使用 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机器上构建一些项目来测试这种扩展能力。

来自somasegar blog

所以他们开始这样做了,至少对于构建而言。

答案 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。