这可能不是一个问题,但我有一些相关的Python问题,希望有助于清除我在过去一两周内被停留的调试。
如果你调用一个返回一个大对象的函数,有没有办法忽略返回值以节省内存?
我最好的例子是,假设您正在逐行将大型文本文件传输到另一台服务器,当您完成管道时,该函数会返回每个成功行的确认。如果管道太多,则返回的确认列表可能会超出可用内存。
for line in lines:
connection.put(line)
response = connection.execute()
如果删除response
变量,我相信返回值仍会加载到内存中,那么当您不关心响应时,有没有办法忽略/阻止返回值?< / p>
更多背景:我使用redis-python包来管理大量的set-added。我的进程偶尔会因内存不足问题而死,即使文件本身并不大,我也不完全确定原因。这只是我最新的假设。
答案 0 :(得分:0)
我认为确认回复不足以超出你的记忆。在python中,当你从文件中读取行时,行总是在内存中占用大量内存资源。