【发布时间】:2008-09-10 12:52:04
【问题描述】:
我正在运行 Visual Studio 2008,它带有可怕的 MS 测试框架。问题是它让我的 CPU 达到 100%(在四核上是 25%)。
我的问题是为什么 Visual Studio 不能在多个内核上运行?当然,M$ 必须对线程有足够的处理才能使其工作。
【问题讨论】:
标签: visual-studio visual-studio-2008
我正在运行 Visual Studio 2008,它带有可怕的 MS 测试框架。问题是它让我的 CPU 达到 100%(在四核上是 25%)。
我的问题是为什么 Visual Studio 不能在多个内核上运行?当然,M$ 必须对线程有足够的处理才能使其工作。
【问题讨论】:
标签: visual-studio visual-studio-2008
我在所有 4 个 CPU 上运行 VS2008。只需设置此环境变量/项目标志。
/MP
(可以在C/C++设置,高级,项目设置中设置)
编辑:MP 标志也可以接受一个数字,例如/MP2 这意味着它只能在 2 个内核上运行。将其保留为 /MP 意味着它将在最大数量的内核上运行。
Edit2:MP 标志可能仅供编译器使用。
【讨论】:
您可以要求 VS 并行编译多个项目,也可以在一个项目中并行编译 (!?)。
工具 > 选项 > 项目和解决方案 > 并行项目构建的最大数量。
这也将并行构建 C++ 和 C#!
【讨论】:
如果有人遇到这个老问题,VS2012 引入了并行构建作为standard feature。引用文章:
Visual Studio 2010 包含“最大并行数”选项 项目构建。”虽然没有任何限制的迹象, 此 IDE 选项仅适用于 C++ 项目。幸运的是,这 限制不再适用于 Visual Studio 11。相反,现在有 也完全支持其他语言的并行构建。查看 这个,同时运行一个进程资源管理器的副本 许多项目正在建设中。您会看到多个 MSBuild 创建实例——与“最大数量”中指定的一样多 并行项目构建。”
【讨论】:
现在 Visual Studio 2010 已经发布了一段时间,请考虑升级以使用 MSTest 的 .testsettings 文件中的 parallelTestCount 属性,如 How to: Run Unit Tests Faster Using a Computer with Multiple CPUs or Cores 中所述。
有一些限制,例如:
例如,使用 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 属性。
【讨论】:
我们还添加了多核支持,用于在命令行上进行多线程构建,以便为您提供大量项目和较长构建时间的用户。启用多核支持只需要几个新属性,MSBuild 管理所有工作以高效地安排项目。 MSBuild 团队通过在 64-CPU 机器上构建一些项目来测试这种扩展能力。
所以他们开始这样做了,至少对于构建来说是这样。
【讨论】:
/MP 标志仅用于构建,我们至少是根据msdn
现在我很想弄错它,但我很确定它只是用于构建。当然,这仍然非常有用。
【讨论】:
我确定这非常困难。大量现有的 GUI 繁重的非线程代码库到多线程。对我来说听起来像 10。
但是对我来说似乎使用了多核。 Intellesense 似乎是线程化的。构建系统具有多项目构建和C++多文件构建。
你对这些工具的问题听起来比它们对你 CPU 的使用程度要深一些。
【讨论】:
对于 Visual Studio 2010,转到工具 > 选项 > 项目和解决方案 > 构建和运行。
然后您将看到一个条目,用于输入“并行项目构建的最大数量”;我的电脑有一个 i7-3770 CPU,一个带超线程的四核,所以它设置为 8。
有关不同版本的 Visual Studio 的信息,请转到此处并选择您的版本:https://msdn.microsoft.com/en-us/library/cyhcc7zc(v=vs.100).aspx
例如对于 Visual Studio 2010,此属性仅影响 C++ 构建:
指定可以同时生成的 Visual C++ 项目的最大数量。为了优化构建过程,并行项目构建的最大数量自动设置为您计算机的 CPU 数量。最大值为 32。
但对于 Visual Studio,它适用于 C++ 和 C#:
并行项目构建的最大数量 指定可以同时生成的 Visual C++ 和 Visual C# 项目的最大数量。为了优化构建过程,并行项目构建的最大数量自动设置为您计算机的 CPU 数量。最大值为 32。
【讨论】: