说网络爬虫是I / O绑定而不是CPU绑定是什么意思?

时间:2011-05-21 00:27:18

标签: performance language-agnostic io web-crawler

我在S / O的一些答案中已经看到了这一点,其中指出编程语言对于爬虫来说并不重要,因此C ++对于Python来说是过度杀戮。有人可以用非专业人的术语来解释这一点,这样就没有含糊不清的含义吗?此处澄清基本假设也很受欢迎。

由于

3 个答案:

答案 0 :(得分:9)

这意味着I / O是这里的瓶颈。走出网络检索页面(I / O)的行为比分析页面(CPU)慢。

因此,将CPU位快十倍对总体时间的影响不大。另一方面,将I / O速度加倍 会产生非常有益的效果,直到CPU开始成为瓶颈。

答案 1 :(得分:4)

这意味着程序需要更多的时间来读取和写入(通过磁盘或网络),然后它实际上在代码中运行算法。 I / O比大多数CPU慢得多,使用它通常会大大减慢程序的速度。

答案 2 :(得分:0)

要添加的一件事是,在输入/输出操作期间,程序(除非写得不好)没有主动使用CPU,它处于非活动状态(睡眠)。