Моя цель - разработать инструмент для мини-тестов, чтобы я мог проверить производительность веб-Api.Как программно создавать счетчики производительности, чтобы сравнить производительность веб-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) Я буду выпускать счетчики производительности для измерения процессора и памяти.
Это план.
Не могли бы вы посоветуете?
Спасибо!
Спасибо за ответ. –
Спасибо за ответ. Тем не менее, мне нужно измерить производительность существующего веб-Api (например, супер-мини-бенчмаркинг), поэтому мне нужно будет использовать счетчики производительности (программно). Я понимаю, что то, что я делал, относится к полному CPU%, но что делать, если я делаю это только для текущего процесса? Мне нужно будет получить показатели для процессора и памяти.Поэтому мне нужен HttpClient, так как мне нужно забить сервер с числом запросов x, а затем использовать счетчики для получения показателей. Я не заинтересован в улучшении запросов Http. Я хочу определить потенциальные узкие места для номера проактивности –