我收看了這部影片:https://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2287。所以我試圖在控制器中實現async/await的使用。所以這是basicaly我所做的:爲什麼不是異步等待提高性能?
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的基準,並做了以下兩個測試:
ab -n 100 -c 100 http://localhost:53446/Home/index
和
ab -n 100 -c 100 http://localhost:53446/Home/indexasync
而且我得到了完全相同的性能(我有8個CPU核心)。這是爲什麼 ?
是你期待什麼樣的性能改進? – trashr0x
您沒有多個同時運行的異步操作,所以我預計不會有任何加速。 – Amy
對於單個請求,您更有可能在性能上看到* drop *。異步通過允許處理更多*併發*請求來減輕負載。 –