Rails 3.1, утечка памяти для пропущенных локальных частичных переменных (Ruby 1.9.2-p290) - PullRequest
2 голосов
/ 28 сентября 2011

Если я отрисовываю партиал, например, так:

= рендер: частичка => "event_news_item",: object => event,: variable => true

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

Кто-нибудь знает, почему здесь происходит утечка памяти?Кто-нибудь может подтвердить это на своей машине?

Если я сделаю

= render: частичный => "event_news_item",: object => event

Ошибкакорректно вызывается при попытке сослаться на переменную в частичном.

(Между прочим, правильный способ сделать это -

= render: частичный => "event_news_item",: object => event,: locals => {: variable => true})

1 Ответ

0 голосов
/ 10 октября 2011

Я видел очень серьезную утечку памяти в аналогичной среде. Я отследил его до невинно выглядящего извлечения ассоциации (если быть точным, comment.author), затем попытался отладить его некоторое время, и, наконец, сдался и запустился на 1.9.3-rc1.

Удивительно, но это исправило эту конкретную утечку памяти и, кроме того, уменьшило размер запуска единорогов на 15M (с 85M до 70M; i386).

...