我如何配置Visual Studio的測試項目使用所有CPU的核心。壓力測試與多核CPU的視覺工作室
當我運行測試時,我可以看到我的性能指標中只有一個內核被使用(100%),其餘7個內核未被使用。
我在測試項目裏面有一個負載測試調用了一個UNITY測試。
我已經設置了200個用戶來調用一種方法。但我需要使用所有的核心。
我如何配置Visual Studio的測試項目使用所有CPU的核心。壓力測試與多核CPU的視覺工作室
當我運行測試時,我可以看到我的性能指標中只有一個內核被使用(100%),其餘7個內核未被使用。
我在測試項目裏面有一個負載測試調用了一個UNITY測試。
我已經設置了200個用戶來調用一種方法。但我需要使用所有的核心。
丹尼斯,根據MSDN:
「在nontest控制器情況下,添加一個Visual Studio負載測試虛擬用戶包2010具有解鎖所有機器的處理器使用的額外好處沒有一個Visual Studio負載測試。虛擬用戶包2010,本地機器只能使用第一個處理器。添加Visual Studio負載測試虛擬用戶包2010後,負載測試可以在機器運行時使用機器上的所有處理器。「
因此,如果您沒有用戶包許可證,則無法解鎖其他核心。
有可能您的測試代碼都是單線程的。單元測試是按順序運行的,所以除非每個測試中的代碼都是多線程的,否則它只能運行在一個線程中。
請小心,在多個線程中運行測試會產生不良後果,單元測試應該只測試該單元,如果是多線程,那麼測試應該是單線程的。
查看接受的答案here。簡介:您需要Visual Studio Team System測試負載代理來執行此操作。
你必須在多個線程中工作。試試這個:
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的值來停止它們。
我的單元測試可以在單個內核上執行。我需要的是Visual Studio使用我所有的核心來連接用戶單元測試。 – shinji14 2010-05-06 19:08:25
什麼樣的測試項目? – cjk 2010-05-06 15:25:15
是測試項目內部的負載測試。 – shinji14 2010-05-06 19:03:52
我發現這得益於Fouz: 「當你運行在多核計算機負載測試,負載生成受到限制如下: 如果計算機運行Visual Studio團隊系統測試版或Visual Studio Team System中的負載生成僅限於一個內核 如果計算機正在運行Visual Studio Team System測試負載代理,則負載生成不受限制;它可在所有內核和處理器上運行。 但即時通訊使用Visual Studio 2010 Ultimate,並且該消息引用Visual 2008. – shinji14 2010-05-06 19:12:14