ROR очень медленно развивается, а производство работает нормально - PullRequest
4 голосов
/ 21 февраля 2010

У меня есть одно приложение rubyonrails, которое оказалось очень медленным в режиме разработки. Все хорошо в производстве, но даже простой "привет мир" занимает секунд в dev. Я проверил магазин сессий и все возможные причины, которые я нашел в сети, но я не нашел проблему. Я скучаю по чему-то общеизвестному? «Завершено за 1657 мс (вид: 226, база данных: 39)»

Ответы [ 4 ]

6 голосов
/ 21 февраля 2010

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

Если вы обнаружите, что ваше приложение все еще работает слишком медленно в производственном режиме, вы можете начать поиск узких мест. Вы можете начать с оптимизации запросов к БД с помощью: include и indicies. Вы также можете попытаться систематически удалять свои гемы и плагины, чтобы найти части, которые замедляют ваш код.

1 голос
/ 22 февраля 2010

Обычно это происходит, если вы запускаете webrick, он настолько медленный, что вызывает кровоточивость глаз.

Попробуйте установить монгрел в dev

gem install mongrel

0 голосов
/ 01 апреля 2015

WEBrick по умолчанию выполняет обратный поиск DNS при подключении IP-адресов. Другими словами, он пытается увидеть, связан ли ваш IP-адрес с доменным именем. Это не нужно и занимает слишком много времени, поэтому вы можете отключить его.

Откройте файл "l / ruby ​​/ lib / ruby ​​/ 1.9.1 / webrick / config.rb" и найдите строку с ": DoNotReverseLookup => nil".

Изменить nil на true .

Наслаждайтесь!

0 голосов
/ 21 февраля 2010

Создайте новое приложение, посмотрите, будет ли оно слишком медленным - оно будет указывать на ваш стек серверов (apache, mongrel, passenger и т. Д.), А не на ваше приложение. Если это только ваше приложение, то профилирование в Google rails - и выберите один из многих вариантов профилирования приложения.

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