忽略函数返回以在Python中保存内存

时间:2017-07-09 00:42:04

标签: python redis python-multiprocessing redis-py

这可能不是一个问题,但我有一些相关的Python问题,希望有助于清除我在过去一两周内被停留的调试。

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

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

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

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

更多背景:我使用redis-python包来管理大量的set-added。我的进程偶尔会因内存不足问题而死,即使文件本身并不大,我也不完全确定原因。这只是我最新的假设。

1 个答案:

答案 0 :(得分:0)

我认为确认回复不足以超出你的记忆。在python中,当你从文件中读取行时,行总是在内存中占用大量内存资源。