怎么区分 io 密集型还是 cpu 密集型

2019-11-29 13:54:12 +08:00
 oldbird
io 密集型用多线程,cpu 密集型用多进程,怎么区分是什么型?
处理大影像,单进程内存占用 3g 多,cpu10%左右,想批处理,算什么型?
5940 次点击
所在节点    Python
11 条回复
maichael
2019-11-29 13:59:03 +08:00
不就看你是计算多还是 IO 多么。你这种一般算是 IO 密集型。
ruandao
2019-11-29 13:59:33 +08:00
web 大多没什么计算,比较偏向 IO
unixeno
2019-11-29 15:14:37 +08:00
大量网络,文件操作就是 io 密集型
大量纯计算就是 CPU 密集型
wuwukai007
2019-11-29 15:15:25 +08:00
用 pysnooper 分析下下耗时的分布,
andylsr
2019-11-29 15:17:07 +08:00
处理影像应该算计算密集吧
waterlaw
2019-11-29 16:02:48 +08:00
cpu 密集型:cpu 占用越接近 100%, 耗费多个核或多台机器
io: 网络占用,文件 io 多
waterlaw
2019-11-29 16:04:42 +08:00
图片处理应该计算密集型, 有 io 的话也可能有 io 密集型, 因此可以考虑 多进程 + 多线程
zhoucan007
2019-11-29 16:16:01 +08:00
图像处理是两个都占了,对读写和计算都要求比较高。非要强行对比的话,可以这么理解,是要足够大的内存(读写速度)还是足够大的算力?算力可能更重要吧。
tt67wq
2019-11-29 16:16:57 +08:00
htop 看看不就知道了
imn1
2019-11-29 16:18:59 +08:00
你这个要具体分析一下,cpu10%不一定就不是计算密集,如果数据缓存加大,cpu 大幅飙升的话,很可能是 cpu 密集
最好查一下瓶颈在哪
shuaili19870320
2019-11-30 23:39:16 +08:00
这两个概念是可以同时存在的,又不互斥。
大视频渲染有可能是多段同时计算同时写入吧,前面那个说的对,可能两个都沾了。

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

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

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

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

© 2021 V2EX