4

すべての CPU のコアを使用するように Visual Studio のテスト プロジェクトを構成する方法を教えてください。

テストを実行すると、パフォーマンス インジケーターで、1 つのコアのみが使用されており (100%)、残りの 7 つのコアが使用されていないことがわかります。

テスト プロジェクト内に、ユニタリ テストを呼び出す負荷テストがあります。

1 つのメソッドを呼び出すように 200 人のユーザーを設定しました。しかし、すべてのコアを使用する必要があります。

4

3 に答える 3

4

MSDNによると、デニスは次のように述べています。

「非テスト コントローラー シナリオで Visual Studio Load Test Virtual User Pack 2010 を追加すると、すべてのマシン プロセッサのロックを解除して使用できるという利点が追加されます。Visual Studio Load Test Virtual User Pack 2010 がなければ、ローカル マシンは最初のプロセッサのみを使用できます。 Visual Studio Load Test Virtual User Pack 2010 を追加すると、負荷テストの実行時にマシン上のすべてのプロセッサを使用できます。」

そのため、ユーザー パック ライセンスがない場合、追加のコアのロックを解除する方法はありません。

于 2010-05-19T23:05:17.003 に答える
-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 に答える
-1

テスト コードがすべてシングル スレッドである可能性があります。単体テストは順次実行されるため、各テストのコードがマルチスレッドでない限り、1 つのスレッドでのみ実行されます。

複数のスレッドでテストを実行すると、悪影響が生じる可能性があることに注意してください。ユニット テストはユニットのみをテストする必要があり、それがマルチスレッドの場合は、テストをシングル スレッドにする必要があります。

于 2010-05-06T15:26:50.817 に答える