Rails 3.1, утечка памяти для пропущенных локальных частичных переменных (Ruby 1.9.2-p290)
Если я сделаю частичку, например, так:
= render: частичный => "event_news_item",:object => событие,:variable => true
И тогда вызывается ссылочная переменная в частичной утечке памяти. Кажется, рельсы уходят в рекурсию. Затем я должен быстро перезапустить свой сервер, прежде чем использование памяти выйдет из-под контроля.
Кто-нибудь знает, почему здесь происходит утечка памяти? Кто-нибудь может подтвердить это на своей машине?
Если я сделаю
= render: частичный => "event_news_item",:object => событие
Ошибка возникает правильно при попытке ссылки на переменную в частичном.
(Правильный способ сделать это, кстати,
= render: частичный => "event_news_item",:object => event,:locals => {:variable => true })
1 ответ
Я видел действительно плохую утечку памяти в подобной среде. Я отследил это до невинно выглядящей ассоциацииcomment.author
, чтобы быть точным), затем попытался отладить его в течение некоторого времени, и, наконец, сдался и работал на 1.9.3-rc1.
Удивительно, но это устранило именно эту утечку памяти и, кроме того, уменьшило размер запуска единорогов на 15M (с 85M до 70M; i386).