【发布时间】:2013-07-14 20:22:20
【问题描述】:
我在 Pry 中玩垃圾收集,并注意到由于某种原因它似乎不起作用。我正在尝试不同的方法将我的大数组设置为nil 等,同时在“为什么我根本无法用GC.start 释放该死的内存?”的问题上打破了我的头脑。
然后我去了 IRB,突然它起作用了!我想知道是什么原因造成的,如果您不知道答案但找到了答案,我也想知道是怎么回事。
我的简单代码(我使用的是 1.9.3-p327,请注意,这会占用 1-2 个演出):
a = []
for i in (1..1000000)
a[i] = 'x' * 100
end
在这里,我观察到内存增加,然后:
for i in (1..1000000)
a[i] = i
end
然后,
GC.start
【问题讨论】:
-
由于某种原因,在我写这篇文章的时候,我成功地让 GC.start 实际上解除了分配。现在我再试一次,它什么也没做。 Ruby的魔法……
标签: ruby memory-management garbage-collection pry