我收看了这部影片: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 *。异步通过允许处理更多*并发*请求来减轻负载。 –