Падение производительности при частичном рендеринге при переносе приложения с Rails 2.3.5 на 3 - PullRequest
0 голосов
/ 27 апреля 2011

Я только что перенес Guzzle с Rails 2.3.5 на 3.0.6 и установил пакет приложения на новый сервер.И у меня падение производительности на страницах, которые имеют много партиалов для рендеринга.

Оба оборудования одинаковы (8-ядерный 8 ГБ + сервер SSD), и это единственные различия:

Текущая машина работаетUbuntu 10.4 LTS 64 бит, REE (Ruby Enterprise Edition) 64 бит, и приложение построено на Rails 2.3.5.

Новая машина работает под управлением Ubuntu 10.10 32 бит, REE 32 бит, а приложение построено на Rails 3.

(причина того, что я использую 32-битную версию REE, заключается в том, что 64-битная версия отстает в два раза больше ОЗУ для каждого процесса ruby).

На обеих машинах работает Apache, MySQL и Memcached.

Да, и я добавил эту строку в production.rb:
config.cache_template_loading = true

Даже если я читаю, это ничего не делает в приложении на Rails 3, яобнаружил, что на самом деле ускоряет рендеринг страницы при последующих обновлениях.Гул ...

Почему это медленнее, и как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2011

Первоначально cache_template_loading был удален, для простоты, но позже был повторно введен. Так что это, безусловно, влияет на рельсы3.

Но чтобы иметь кеширование, вам нужно установить

config.cache_classes = true
config.cache_template_loading = true

(не уверен, что означает line, на который вы ссылаетесь). Но учтите, что вы должны установить оба в true, чтобы иметь кеширование (я получаю это из коммита , особенно тестов).

Надеюсь, это поможет.

0 голосов
/ 27 апреля 2011

Я заметил похожее поведение в среде разработки, но не в производстве - там обычно очень быстро.Как вы оцениваете свою работу?Откуда вы знаете, что это от рендеринга частичных?Также я настоятельно рекомендую перейти на ruby ​​1.9.2 (REE - 1.8.7, если я не ошибаюсь).1.9.2 должен значительно повысить производительность по всем направлениям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...