C# 异步方法是提高性能还是只影响应用程序的可扩展性
我正在阅读关于EF core@的文档,作者提到了以下关于异步处理的内容:- 异步代码在运行时会引入少量开销 时间,但对于低流量情况,性能影响是 可忽略不计,而对于高流量情况,潜在的 性能改进是巨大的C# 异步方法是提高性能还是只影响应用程序的可扩展性,c#,asp.net,asynchronous,C#,Asp.net,Asynchronous,我正在阅读关于EF core@的文档,作者提到了以下关于异步处理的内容:- 异步代码在运行时会引入少量开销 时间,但对于低流量情况,性能影响是 可忽略不计,而对于高流量情况,潜在的 性能改进是巨大的 但据我所知,使用异步代码不会提高性能,它只允许IIS处理更多请求,但无论使用同步还是异步处理,请求响应时间都不会改变。。。我的观点正确吗?如果您将典型的IIS应用程序阶段分解为 从网络读取请求 反序列化请求 从数据库请求数据(EF调用) 使用缓存丰富数据 串行响应 向网络发送响应 1、3和6等待网络
但据我所知,使用异步代码不会提高性能,它只允许IIS处理更多请求,但无论使用同步还是异步处理,请求响应时间都不会改变。。。我的观点正确吗?如果您将典型的IIS应用程序阶段分解为
若由于不需要创建任务,所以同步请求的数量永远不会超过服务器CPU内核的数量,那个么阻塞调用的工作速度比异步调用快,请将其完成情况排队。但这种情况很少发生。你说得对了一半。异步代码将允许通过不阻塞I/O绑定代码上的线程来并发处理更多的请求,但由于创建异步状态机(通常表现为不可测量的额外延迟),它会带来少量(很可能是不可见的)开销。请记住,“性能”不仅仅意味着“延迟”。它也可能是http队列长度、内存、cpu、吞吐量等的一个因素。通常,在编写web API时,始终使用异步。