В MRI Ruby 2.0, насколько тщательно GC.start
?
Пытается ли он собрать мусором все объекты, на которые больше нет ссылок? Или он только GC возражает, если считает это необходимым?
Я пытаюсь отслеживать количество объектов определенного класса, которые у меня есть, и, кажется, оно продолжает увеличиваться, хотя я думаю, что некоторые объекты больше не имеют на них ссылки. Использование GC.start
не исправляет это. Я не использую никаких расширений C, так что это не может меня усложнить.
Редактировать: Проблема, с которой я столкнулся, была такой же, как и в Ruby Symbol#to_proc пропускает ссылки в 1.9.2-p180? - объекты все еще существовали, когда я думал, что они должны быть удалены сборщиком мусора, и, как и в этом случае, проблема заключалась в том, чтобы сделать с использованием неявного Symbol
-> Proc
. Тем не менее, было бы неплохо знать, ожидается ли, что GC.start
будет собирать все объекты или просто собирать то, что MRI считает необходимым для сборки мусора.
GC.start
и это не дает ожидаемого эффекта, или вы просто видите, что объекты удерживаются дольше, чем ожидалось, и задаетесь вопросом, поможет лиGC.start
. - person Andrew Marshall   schedule 18.10.2013