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行數據,並且不釋放內存,直到手動終止進程。
任何人都可以幫助我理解背後的原因。
你怎麼知道內存沒有被釋放?內存只在垃圾收集器決定內存對於其他操作是必需的並且必須被恢復時才被釋放。另外,有些操作系統往往不會回收內存,直到真正需要。所以,如果沒有內存請求,看到內存使用量增加並且不縮水並不罕見。 –