1

我知道在处理 UI 时,异步库使异步实现非常容易。但是我看不到它可以提高性能的任何服务器端用法。在哪些服务器端场景中可以使用 await 来提高性能?

4

2 回答 2

3

Async在网络场景中特别有用,因为服务器之间的通信很少没有延迟。向另一个 Web 服务器(另一个层,第三方 REST 服务)发出请求,甚至查询数据库通常是通过阻止当前线程执行任何工作的阻塞调用来完成的,直到远程调用完成。通过改为await远程调用,您的当前线程被释放以处理其他请求,从而减少内存压力(IIS 每个线程使用 256KB 的堆栈空间)并增加潜在负载(在线程用完之前可以运行更多并行任务) .

大多数 ASP.NET 的基本管道使用IHttpHandler而不是IHttpAsyncHandler,这意味着它假定阻塞行为,但可以在 ASP.NET 中使用异步。

于 2011-05-28T16:22:35.663 回答
2

使用 async 与使用现有的 async 调用 API 不会使您的应用程序突然变得更好,它只会使编写和维护代码更易于管理。这不是要问的正确问题。

于 2011-05-18T11:47:40.687 回答