这甚至可能不是问题,但我有几个相关的 Python 问题,希望能帮助解决我在过去一两周中一直坚持的一些调试问题。
如果调用返回大对象的函数,有没有办法忽略返回值以节省内存?
我最好的例子是,假设您正在将一个大文本文件逐行传输到另一台服务器,当您完成管道时,该函数会为每个成功的行返回一个确认。如果管道太多,返回的确认列表可能会超出您的可用内存。
for line in lines:
connection.put(line)
response = connection.execute()
如果您删除response
变量,我相信返回值仍会加载到内存中,所以当您不真正关心响应时,有没有办法忽略/阻止返回值?
更多背景:我正在使用 redis-python 包来管道大量的集合添加。即使文件本身不是那么大,我的进程偶尔也会因内存不足而死机,我也不完全确定为什么。这只是我的最新假设。