关于async对webapi性能影响的疑问(asp.net core3) -- 请教大神

2020-10-19 17:00发布

我对action是否采用异步模式做了个小测试,结果是不使用异步模式的反而速度快一些。

具体问题请看文章 https://www.cnblogs.com/honghuamin/p/13754225.html

标签:
7条回答
我只想做你的唯一
2楼-- · 2020-10-19 17:01

不能简单的认为async就一定能提升性能
https://zhuanlan.zhihu.com/p/216526486?utm_source=wechat_session

另外,.net core的性能提升体现在多个方面
https://www.cnblogs.com/yswenli/articles/9060161.html

查看更多
你好瞎i
4楼-- · 2020-10-19 17:15

这个东西并不会提升单次调用的性能,只是增加了线程的利用率,好像之前有人问过,还是站长回答的,一时找不到那个答案了。

查看更多
成全新的幸福
5楼-- · 2020-10-19 17:22

首先你的具体案例里是否有一些IO的处理,比如读写数据库,比如你有100行代码,第一行就是是读写数据库的,那么不是异步的时候,你就需要等到数据库IO操作完毕再运行下面99行。
可能99行代码里 第50行要用到IO处理的结果,那么如果用了异步第一行运行的时候 ,第二行到50行就并行运行了,
然后50行代码等io的结果后再运行下面代码。

还有新开线程也是要资源的,当你的并发量不高的时候,可能你还会感觉慢,就和数据库加了索引是为了表数据量级大的时候更快,如果数据量少,不会有明显的差距的

查看更多
劫难
6楼-- · 2020-10-19 17:23

看实际情况。不然IIS为什么给你设置线程数。这个根据任务情况(如长任务还是短任务),硬件情况(CPU核心数,线程支持情况)。就好比都知道TCP连接开销大,那为什么html要分成多个文件,文件分多还是分少好——都是根据自己的情况测试调整。

查看更多
smile是对你的礼貌
7楼-- · 2020-10-19 17:23

异步的目的是降低性能提高吞吐量

查看更多
登录 后发表回答