我必须复制并对文件做一些简单的处理。我无法将整个文件读入内存,因为它太大了。我想出了一段代码,看起来像这样:
buffer = inFile.read(buffer_size)
while len(buffer) > 0:
outFile.write(buffer)
simpleCalculations(buffer)
buffer = inFile.read(buffer_size)
simpleCalculations 过程与此上下文无关,但我担心缓冲区列表的后续内存分配。在某些硬件配置上,内存使用率非常高,这显然会杀死机器。我想重用缓冲区。这在 python 2.6 中可行吗?
最佳答案
我认为没有任何简单的方法可以解决这个问题。 file.read()
方法只是在您每次调用它时返回一个新字符串。另一方面,您真的不需要担心内存不足——一旦您将 buffer
分配给新读取的字符串,先前读取的字符串就不再有任何引用, 因此它的内存会自动释放(有关详细信息,请参阅 here)。
关于python - 在 python 中复制缓冲区时优化内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9443040/