Я просто получил свои направляющие 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 раза медленнее? Я не могу понять это ни за что в жизни.
Попробуйте использовать 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 должен выйти в этом месяце Я полагаю , так что это хорошие новости :)
Вероятно, это потому, что Ruby 1.9 использует gem_prelude (который дает вам большой путь загрузки) вместо обычных rubygems. Выделите длину $: -, поиск которой выполняется один раз для каждого требования, что вызывает дополнительное время
Если вы хотите, чтобы это было по-старому, (обновите до последней версии rubygems и) запустите ruby --disable-gems
Если вы работаете в Windows, загляните в мой гем fast_require.
http://github.com/rdp/faster_require
Хотя я полагаю, теперь, когда вы упомянули об этом, это может помочь в 1.9 Linux. Может быть.
GL! -rp