0

这甚至可能不是问题,但我有几个相关的 Python 问题,希望能帮助解决我在过去一两周中一直坚持的一些调试问题。

如果调用返回大对象的函数,有没有办法忽略返回值以节省内存?

我最好的例子是,假设您正在将一个大文本文件逐行传输到另一台服务器,当您完成管道时,该函数会为每个成功的行返回一个确认。如果管道太多,返回的确认列表可能会超出您的可用内存。

for line in lines:
    connection.put(line)
response = connection.execute()

如果您删除response变量,我相信返回值仍会加载到内存中,所以当您不真正关心响应时,有没有办法忽略/阻止返回值?

更多背景:我正在使用 redis-python 包来管道大量的集合添加。即使文件本身不是那么大,我的进程偶尔也会因内存不足而死机,我也不完全确定为什么。这只是我的最新假设。

4

1 回答 1

0

我认为确认响应不足以超出您的记忆。在 python 中,当您从 file 读取行时,这些行总是在内存中,这会占用大量内存资源。

于 2017-07-09T02:59:57.870 回答