Подтвердить что ты не робот

Rails инициализирует чрезвычайно медленный ход на рубине 1.9.1

Я только что получил приложение rails 2.3.8, работающее на ruby ​​1.9.1. Чтобы попасть в консоль, запустите веб-сервер, все, что инициализирует рельсы, занимает в 3-4 раза больше рубина 1,9, чем в рубине 1.8.7. Я использую менеджеров рубиновой версии, поэтому я могу легко переключаться между ruby ​​1.9 и ruby ​​1.8.7. Разница в скорости происходит как в производстве, так и в разработке. Я хочу использовать 1.9, потому что его нужно быстрее, как только все будет запущено, но время запуска настолько плохо, что приложение синхронизируется с Heroku по первому запросу.

Любые идеи, почему ruby ​​1.9 будет в 3 - 4 раза медленнее? Я не могу понять, что это за жизнь.

4b9b3361

Ответ 1

Попробуйте использовать 1.9.2-head вместо 1.9.1. Это рекомендуемая версия для Rails 3, поэтому вам может быть повезло больше. Rails 2.3.8 запускается очень быстро на 1.9.2-голова из тестов, которые я только запускал локально (с установленным Authlogic, кстати).

Если вы используете RVM, введите следующее:

rvm install 1.9.2-head
rvm use 1.9.2-head

Изменить: я пробовал 1.9.1 p378 с тем же приложением, и время запуска заняло около 13 секунд по сравнению с 5 секундами на 1.9.2-head. 1.9.2-rc1 выйдет в этом месяце Я верю, так что хорошие новости:)

Ответ 2

Вероятно, потому, что ruby ​​1.9 использует gem_prelude (который дает вам большой путь загрузки) вместо обычных рубигемов. Оформить длину $: -, которая будет искать один раз для каждого запроса, вызывая дополнительное время

Если вы хотите его по-старому (обновить до последней версии rubygems и) запустить ruby ​​--disable-gems

Если вы находитесь в окнах, загляните в мой драгоценный камень quick_require.

http://github.com/rdp/faster_require

Хотя я полагаю, теперь, когда вы упомянули об этом, это может помочь в 1.9 Linux. Может быть.

GL! -rp