Визуальная студия Stress Test с многоядерным процессором - PullRequest
4 голосов
/ 06 мая 2010

как я могу настроить тестовый проект Visual Studio для использования всего ядра процессора.

Когда я запускаю тест, по индикатору производительности я вижу, что используется только одно ядро ​​(100%), а остальные 7 ядер не используются.

У меня есть внутри тестового проекта нагрузочный тест, который называет Унитарный тест.

Я установил 200 пользователей для вызова одного метода. Но мне нужно использовать все ядра.

Ответы [ 4 ]

5 голосов
/ 20 мая 2010

Денис, согласно MSDN :

"Добавление пакета Visual 2010 Load Test Test Virtual User Pack в сценарии контроллера без тестирования дает дополнительное преимущество разблокировки всех процессоров компьютера для использования. Без локального пакета Virtual Test Pack 2010 Visual Load Load Virtual компьютер может использовать только первый процессор . После добавления пакета виртуального пользователя Visual Studio Load Test 2010 для нагрузочного тестирования можно использовать все процессоры на компьютере при запуске. "

Так что нет возможности разблокировать ваши дополнительные ядра, если у вас нет лицензии пакета пользователя.

2 голосов
/ 06 мая 2010

См. Принятый ответ здесь .Краткое описание: для этого вам понадобится агент загрузки загрузки Visual Studio Team System.

0 голосов
/ 06 мая 2010

Вы должны выполнять работу в несколько потоков. Попробуйте это:

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.

0 голосов
/ 06 мая 2010

Скорее всего, ваш тестовый код является однопоточным. Модульные тесты запускаются последовательно, поэтому, если код в каждом тесте не является многопоточным, он будет выполняться только в одном потоке.

Будьте осторожны, поскольку выполнение тестов в нескольких потоках может иметь неблагоприятные последствия, модульные тесты должны проверять только модуль, а если он многопоточный, то тест должен быть однопоточным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...