Направляющие инициализируют чрезвычайно медленный на рубиновых 1.9.1

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

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

20
задан kiamlaluno 10 March 2011 в 06:49
поделиться

2 ответа

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

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

rvm install 1.9.2-head
rvm use 1.9.2-head

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

6
ответ дан 30 November 2019 в 01:35
поделиться

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

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

Если вы работаете в Windows, загляните в мой гем fast_require.

http://github.com/rdp/faster_require

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

GL! -rp

0
ответ дан 30 November 2019 в 01:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: