异步任务用 asyncio 比 thread 会节省多少性能?

2019-09-14 12:12:02 +08:00
 miniyao
任务量不算很大,用不上专门的队列。每次任务大约耗时 5 秒左右,一分钟任务总次数 10 次以内,单机性能还可以不算很紧张。

选用 thread 和 asyncio 异步处理都能完成任务,涉及到网络 IO,所以 2 者实际完成任务是时间差别不大。不知道这种任务负荷,长期下来,thread 和 asyncio 对比,asyncio 能节省多少 cpu 及内存性能?有经验的朋友说下吗
7428 次点击
所在节点    Python
23 条回复
so1n
2019-09-14 22:27:15 +08:00
asynico 一般比 thread 省去了进程切换时的上下文切换
a719114136
2019-09-15 01:39:43 +08:00
1 分钟就 10 次而已,各项指标上不会有多大区别。对哪个熟悉用哪个。
对于更多的并发,只有实测才知道
watsy0007
2019-09-15 22:53:46 +08:00
基于你说的...建议熟悉的方案快速怼完. 做好异常处理.

过早的优化是万恶之源.

抛开这个, threading 和 asyncio 对 cpu 和内存的性能影响.主要基于看场景. 对于 IO 密集型的. 用 asyncio 比起 threading, 资源利用率更高效. 否则区别不大.
我建议很多
threading 里面 循环 ` await http request` 没啥区别.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/600756

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX