python - 在 python 中复制缓冲区时优化内存使用

标签 python optimization

我必须复制并对文件做一些简单的处理。我无法将整个文件读入内存,因为它太大了。我想出了一段代码,看起来像这样:

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/

相关文章:

c++ - MSVC 2013 : crash at addpd xmm6, xmmword ptr [rax+rbx*8]

MySQL : ORDER BY FIELD/GROUP BY

python - matplotlib 连接到主页/后退/前进按钮事件

python - 如何使用 Sphinx 记录特定部分中的成员?

python - 给定一个对象的地址,我如何在 LLDB Python 脚本中调用它的 Obj-C 方法?

java - 优化 HibernateTemplate 的数据插入

ruby-on-rails - 在 Rails/PostGreSQL 中对大表进行分析

python - 无效参数错误 : input_1_1:0 is both fed and fetched

python - 如何在 Python 中创建以太坊钱包?

c++ - Visual Studio 编译器默认为/O