Я создаю консольную программу, которая может протестировать чтение/запись в кеш путем имитации нескольких клиентов и написали следующий код. Пожалуйста, помогите мне понять:Тест нагрузки с использованием C# Async Await
- ли это правильный путь для достижения нескольких клиентов моделирования
- Что я могу сделать больше, чтобы сделать это испытание подлинной нагрузки
void Main()
{
List<Task<long>> taskList = new List<Task<long>>();
for (int i = 0; i < 500; i++)
{
taskList.Add(TestAsync());
}
Task.WaitAll(taskList.ToArray());
long averageTime = taskList.Average(t => t.Result);
}
public static async Task<long> TestAsync()
{
// Returns the total time taken using Stop Watch in the same module
return await Task.Factory.StartNew(() => // Call Cache Read/Write);
}
Похоже, что WCF и многие другие сервисные узлы предотвращают большую нагрузку от одного отправителя, поэтому, даже если вы закроете свою службу с одного компьютера, другие могут легко получить доступ к вашему сервису. –
Возможно, некоторые задачи могут быть запланированы с помощью «Factory.StartNew», и их выполнение будет задерживаться в случае огромного количества одновременных задач. – cassandrad