3

我有一个包含以下数据的字典,

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>}

我正在尝试遍历一个 dict 值only_display_attrs,这个 dict 值是一个生成器对象。

这是我的代码,

for item in my_dict['only_display_attrs']:
    yield i

注意:only_display_attrs是一个SQLAlchemy生成器对象。

此循环为 30,000 行数据消耗高达 1100 mb 的内存,并且在手动终止进程之前不会释放内存。

谁能帮我理解这背后的原因。

4

1 回答 1

1

相关位是您对产生的值所做的事情。如果你把它们留在身边,那么内存将永远不会被释放。但是在显示的代码中,没有内存被用完(除非continuation_stripper代码中有错误)。

于 2012-11-26T14:29:31.883 回答