我在Pry玩垃圾收集時發現,由於某種原因,它似乎不起作用。我嘗試了不同的方式來設置我的大陣列爲nil
等,同時打破了我的頭:「爲什麼在這個世界上,我無法用GC.start
釋放令人恐懼的內存?」GC.start在Pry中沒有效果,但是在IRB中有效
然後我去了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的魔力...... – valk