Я играл с сборкой мусора в 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 фактически DEALLOCATE. Теперь я снова пытаюсь, и он ничего не делает. Магия Руби ... – valk