Rails сборщик мусора не удаляет старые объекты - PullRequest
1 голос
/ 27 февраля 2012

Странное поведение, с которым я столкнулся при оптимизации вида rails:

После настройки количества вызовов сбора мусора в запросе я не увидел реальных улучшений производительности. Исследуя проблему, я обнаружил, что сборщик мусора на самом деле не удаляет столько мертвых объектов!

Я получил очень тяжелое представление с ЗАГРУЗКАМИ объектов. Используя scrap Я обнаружил, что после нового запуска сервера и загрузки страницы количество объектов составило около 670 000, после перезагрузки страницы в 3 раза это количество возросло до 19 000 000! RAILS_GC_MALLOC_LIMIT установлен в 16.000.000, и я могу прочитать, что GC был вызван 1400 раз. Почему память продолжает увеличиваться при обновлении страницы? И есть ли способ убедиться, что старые объекты удалены GC?

PS: работает на REE 1.8.7 2011.03 с рельсами 3.2.1

1 Ответ

0 голосов
/ 02 июля 2012

Я настоятельно рекомендовал использовать newrelic для оптимизации, получил гораздо больше прироста производительности, чем с небольшой настройкой gc ..

Вам не нужно gc объекты, которые вы никогда не создаете:)

...