Я смотрел это видео: https://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2287. Поэтому я попытался реализовать использование async/await в контроллере. Итак, это в основном то, что я сделал:
public class HomeController : Controller
{
private static WebClient _webClient = new WebClient();
public async Task<ActionResult> IndexAsync()
{
var data = await _webClient.DownloadStringTaskAsync("http://stackoverflow.com/");
return View("Index", (object)data);
}
public ActionResult Index()
{
var data = _webClient.DownloadString("http://stackoverflow.com/");
return View("Index", (object)data);
}
}
Затем я использовал Apache Benchmark и провел два следующих теста:
ab -n 100 -c 100 http://localhost:53446/Home/index
и
ab -n 100 -c 100 http://localhost:53446/Home/indexasync
И я получил точно такую же производительность (у меня 8 ядер процессора). Это почему ?