Чрезвычайно медленный пакет 1.0.3 (Bundler.require) с около 100 гемами в Rails 3.0.1 и Ruby 1.9.2 - PullRequest
2 голосов
/ 27 октября 2010

Я использую Rails 3.0.1, Bundler 1.0.3 и Ruby 1.9.2p0 (2010-08-18 ревизия 29036).Все было хорошо и быстро, пока я не начал добавлять Devise & Omniauth.С этого момента все, что связано с инициализацией Bundler (вызов Bundler.require, как в application.rb), заняло целую вечность (с помощью 30-50 секунд, что много, например, для вызова 'rake route').

Времяпотерян в 'config / application.rb':

Bundler.require(:default, Rails.env) if defined?(Bundler)

Я пытался отключить / включить драгоценные камни (например, те, которые я добавил последними или все связанные с тестами драгоценные камни), но это выглядит какесли это проблема, связанная с ограничением количества драгоценных камней, а не с какими-либо конкретными проблемами кодирования в некоторых драгоценных камнях.

Для окончательного тестирования я создал новый проект Rails 3.0.1 с новым набором гемов RVM и добавил камни один за другим.Все еще то же самое в пределах 30-50 драгоценных камней (что не является чем-то необычным для больших проектов и никогда прежде не было проблемой).

Любые идеи (кроме того: уменьшение количества драгоценных камней)?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2010

Лучшее, что я придумал, - это использование спорка. Он прекрасно работает и компенсирует медленный запуск. Spork запускает DRB-сервер, к которому rspec / cucumber может подключаться и использовать предварительно загруженные процессы ruby ​​для запуска тестов. Он перезагружает определенные файлы (тесты, классы, ...) для каждого запуска, поэтому он почти так же свеж, как новый процесс.

https://github.com/timcharper/spork

2 голосов
/ 08 ноября 2010

Та же проблема.Добавление драгоценных камней, соответственно, увеличивает время загрузки среды от упаковщика.Я еще не решил эту проблему.Это займет около 20 секунд, прежде чем спецификации будут работать.Это сводит меня с ума; .. (

...