Утечка памяти в Ruby 2.0 (SketchUp)

У меня проблемы с тем, что кажется утечкой памяти. Когда я запускаю свой код, использование памяти продолжает расти, пока приложение не падает.

Я использовал GC.start, чтобы убедиться, что все неиспользуемые объекты удалены. Я также использую модуль ObjectSpace, чтобы отследить преступника, но я не смог понять, что происходит.

В этом файле https://www.dropbox.com/s/0j75ylcsj3rs0ro/Log_1.txt я зарегистрировал выходные данные ObjectSpace count_objects. Первый вывод команды перед одним большим циклом for. В конце каждого цикла я использую GC.start. Из того, что я вижу, общее количество объектов остается постоянным в течение цикла for, однако объем памяти, используемой приложением, продолжает увеличиваться.

Урезанная версия кода находится по этой ссылке https://www.dropbox.com/s/5fnludxurs1ljy8/Shading.rb

1 ответ

Задача решена! Я узнал, что если вы используете переменные с заглавными буквами, они считаются константами и, очевидно, даже если вы переназначаете их, память никогда не освобождается. У меня было 5 переменных, начинающихся с заглавных букв, и я переставлял их несколько раз в циклах. Переход на нижний регистр решил проблему. Больше никаких проблем с памятью.

Другие вопросы по тегам