3
我有我的字典与下面的数据,Python进程不释放内存
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
发电机对象。
此循环消耗高达1100 MB的内存用于30,000行数据,并且不释放内存,直到手动终止进程。
任何人都可以帮助我理解背后的原因。
你怎么知道内存没有被释放?内存只在垃圾收集器决定内存对于其他操作是必需的并且必须被恢复时才被释放。另外,有些操作系统往往不会回收内存,直到真正需要。所以,如果没有内存请求,看到内存使用量增加并且不缩水并不罕见。 –