我有一个包含以下数据的字典,
my_dict = {'item_1': <generator object continuation_stripper at 0xda78640>,
'only_display_attrs': <generator object continuation_stripper at 0xda78690>,
'item_2': <generator object continuation_stripper at 0xda786e0>}
我正在尝试循环一个字典值 only_display_attrs
,这个字典值是一个生成器对象。
这是我的代码,
for item in my_dict['only_display_attrs']:
yield i
注意:only_display_attrs
是一个 SQLAlchemy
生成器对象。
此循环为 30,000 行数据消耗高达 1100 MB 的内存,并且在进程被手动终止之前不会释放内存。
谁能帮我理解这背后的原因。
最佳答案
相关位是您如何处理产生的值。如果你把它们留在身边,那么内存将永远不会被释放。但是在显示的代码中,没有内存被用完(除非 continuation_stripper
代码中有错误)。
关于Python进程不释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13566776/