当我使用readline
功能时会发生什么?
答案 0 :(得分:2)
它一直缓存下来!
Readline返回一个字符串,该字符串可能由以下内容缓冲:
您提出的二分法根据您所查看的级别有不同的答案。对于磁盘驱动器,没有"文件"或" line,"因此它总是会读取一个"块。"一旦将磁盘块(几KB)加载到内存中,它也可以坐在那里直到需要其他内存。而且C标准库通常也会一次缓冲几KB。
因此,单个readline
调用可能会对几行执行大部分所需的处理,并且只返回第一个。
当然,Python字符串是动态分配的,这意味着包含该行的对象也需要存储在内存中,对于虚拟内存,其中一些也可能在磁盘上!