readline函数:引擎盖下,python

时间:2016-11-23 11:55:24

标签: python python-2.7

当我使用readline功能时会发生什么?

  1. 该功能从HDD读取一行到RAM中的缓冲区。
  2. 该函数从HDD读取多条线到RAM中的缓冲区。

    感谢

1 个答案:

答案 0 :(得分:2)

它一直缓存下来!

Readline返回一个字符串,该字符串可能由以下内容缓冲:

  1. Python运行时
  2. C标准库(stdio),
  3. CPU缓存
  4. 内存,包括虚拟内存,在坏情况下可能是磁盘!
  5. 磁盘控制器缓存(仅限在服务器上),
  6. 磁盘驱动器缓存。
  7. 您提出的二分法根据您所查看的级别有不同的答案。对于磁盘驱动器,没有"文件"或" line,"因此它总是会读取一个"块。"一旦将磁盘块(几KB)加载到内存中,它也可以坐在那里直到需要其他内存。而且C标准库通常也会一次缓冲几KB。

    因此,单个readline调用可能会对几行执行大部分所需的处理,并且只返回第一个。

    当然,Python字符串是动态分配的,这意味着包含该行的对象也需要存储在内存中,对于虚拟内存,其中一些也可能在磁盘上!