我正在使用令人噩梦般的MS测试框架运行Visual Studio 2008。问题是它会使我的CPU占用率达到100%(在四核上为25%)。
我的问题是为什么Visual Studio不能在多个核心上运行?毕竟微软一定对线程有足够的掌握来让这个工作正常运行。
我正在使用令人噩梦般的MS测试框架运行Visual Studio 2008。问题是它会使我的CPU占用率达到100%(在四核上为25%)。
我的问题是为什么Visual Studio不能在多个核心上运行?毕竟微软一定对线程有足够的掌握来让这个工作正常运行。
我已经在所有4个CPU上运行了VS2008。只需设置此环境变量/项目标志。
/MP
(可以在C/C++设置、高级中设置。在项目设置中)
编辑:MP标志还可以接受一个数字,例如/MP2,这意味着它只会在2个核心上运行。将其保留为/MP,则会在最大数量的核心上运行。
编辑2:MP标志可能仅适用于编译器。
您可以要求VS并行编译多个项目,以及在同一项目中并行编译。
工具 > 选项 > 项目和解决方案 > 最大并行项目构建数量。
这将同时编译C++和C#!
现在 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>
parallelTestCount
属性。这段话来自somasegar博客。
所以他们开始做了,至少是针对构建方面。
我确定这很难。将巨大的现有GUI重型非线程代码库转换为多线程。听起来像是10分难度。
但是对我来说它似乎使用了多核心。Intellesense似乎是多线程的。构建系统具有多项目构建和C++多文件构建功能。
你对这些工具的问题似乎比它们如何使用你的CPU更深入。
对于Visual Studio 2010,请转到“工具”>“选项”>“项目和解决方案”>“生成和运行”。
然后,您将看到一个条目,用于输入“最大并行项目构建数”的数字;我的PC配备了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。