(とりわけ)並列テストを実行するためのツールであるNCrunchをインストールしました。MaxNumberOfUsedCoresとMaxNumberOfUsedThreadsの2つの設定を提供します。最初の設定は興味をそそるように見えます。コードの実行に使用されるコアを制御できる.NETの手段を覚えていません。だから問題はそれをどのように行うかです?
1 に答える
1
試しましたProcessThread.ProcessorAffinity
か?ProcessorAffinity
は、各プロセッサをビットとして表します。ビット 0 はプロセッサ 1 を表し、ビット 1 はプロセッサ 2 などを表します。例えば:
var currectProcess = System.Diagnostics.Process.GetCurrentProcess();
foreach(System.Diagnostics.ProcessThread thread in currectProcess.Threads)
{
// this could give you something similar to MaxNumberOfUsedCores
thread.ProcessorAffinity = (IntPtr)0x0007; // Valid processors: 1, 2, or 3
}
現在、NCrunch で次の構成を使用しています。これは、以前の c# サンプルと非常によく似ています。
- NCrunch に割り当てられる CPU コア: 0、1、2
- Visual Studio に割り当てられた CPU コア: 3
しかし、NCrunch @remco-mulder の著者だけが、それが本当かどうかを教えてくれました。
ところで:ReSharperには、ユニットテストの並列実行スレッドの数を制御するための同様のオプションがあります。
于 2012-07-25T03:46:25.417 に答える