我的目標是開發一個迷你基準測試工具,以便測試Web Api的性能。如何以編程方式創建性能計數器,以便基準測試web api的性能
我想使用一個簡單的控制檯應用程序以編程方式創建性能計數器。作爲我的研究的一部分,我創建了下面的主要方法。這只是一個簡單的測試。所以基本上,我需要HttpClient來轉發x個請求,然後查看這個操作的一些指標(即處理器時間百分比)。
我的邏輯正確嗎?
隱藏複製代碼
static void Main(string[] args)
{
var client = new HttpClient();
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var theCPUCounter = new PerformanceCounter("Process", "% Processor Time", Process.GetCurrentProcess().ProcessName);
Console.WriteLine(theCPUCounter.NextValue());
System.Threading.Thread.Sleep(1000);
for (int i = 0; i <= 5; i++)
{
HttpResponseMessage response = client.GetAsync("http://www.google.co.uk/").Result;
}
Console.WriteLine(theCPUCounter.NextValue());
}
我知道有性能計數器,使更多的意義,但就目前而言,我只是想看看,如果我理解正確。
如果上面是正確的,那麼我的計劃是:
1)創建與使用的HttpClient和TPL(即發送1000個併發請求,但創造每100個不同的場景,以便利用各種併發請求的各種吞吐量場景Web Api中的資源)。只要我有這些場景執行,然後
2)我將釋放測量CPU和內存的性能計數器。
這就是計劃。
你能提供建議嗎?
謝謝!
感謝您的答覆。 –
感謝您的回覆。但是,我需要測量現有Web API的性能(如超級迷你基準測試工具),所以我需要使用性能計數器(以編程方式)。我知道我所做的是指總CPU百分比,但是如果我只爲當前進程執行操作,該怎麼辦?我需要獲得處理器和內存的指標。因此,我需要HttpClient,因爲我需要用x個請求錘擊服務器,然後使用計數器來檢索度量標準。我對改進Http請求不感興趣。我想確定潛在的瓶頸數量 –