4

我如何配置 Visual Studio 的测试项目以使用所有 CPU 的内核。

当我运行测试时,我可以在性能指标上看到只有一个内核正在使用(100%),其余 7 个内核未使用。

我在测试项目中有一个调用统一测试的负载测试。

我设置了 200 个用户来调用一个方法。但我需要使用所有核心。

4

3 回答 3

4

丹尼斯,根据MSDN

“在非测试控制器方案中添加 Visual Studio 负载测试虚拟用户包 2010 具有解锁所有机器处理器以供使用的额外好处。没有 Visual Studio 负载测试虚拟用户包 2010,您的本地机器只能使用第一个处理器。之后您添加了 Visual Studio 负载测试虚拟用户包 2010,负载测试在运行时可以使用机器上的所有处理器。”

因此,如果您没有用户包许可证,则无法解锁额外的内核。

于 2010-05-19T23:05:17.003 回答
-1

您的测试代码很可能都是单线程的。单元测试是按顺序运行的,因此除非每个测试中的代码是多线程的,否则它只会在一个线程中运行。

请注意,在多个线程中运行测试可能会产生不良后果,单元测试应该只测试单元,如果是多线程的,那么测试应该是单线程的。

于 2010-05-06T15:26:50.817 回答
-1

你必须在多个线程中工作。试试这个:

class Program
{
    static bool isRunning = true;

    static void Main(string[] args)
    {
        BackgroundWorker bw1 = new BackgroundWorker();
        BackgroundWorker bw2 = new BackgroundWorker();

        bw1.DoWork += delegate(object sender, DoWorkEventArgs e)
        { while (isRunning) { } };

        bw2.DoWork += delegate(object sender, DoWorkEventArgs e)
        { while (isRunning) { } };

        bw1.RunWorkerAsync();
        bw2.RunWorkerAsync();

        Console.ReadLine();
        isRunning = false;

    }
}

您可以根据您拥有的核心数量增加后台工作人员的数量(此示例最大化了我的双核计算机)。您可以在运行工作程序后放置代码,然后通过更改 isRunning 的值来停止它们。

于 2010-05-06T15:30:17.547 回答