2010-10-27 4 views
2

J'utilise Rails 3.0.1, Bundler 1.0.3 et Ruby 1.9.2p0 (2010-08- 18 révision 29036). Tout allait bien et vite jusqu'à ce que je commence à ajouter Devise & Omniauth. A partir de là, tout ce qui impliquait l'initialisation de Bundler (appel de Bundler.require comme dans application.rb) prenait des âges (au moyen de 30-50 secondes, ce qui est beaucoup pour, par exemple, appeler des «rake routes»).Extrêmement lent bundler 1.0.3 (Bundler.require) avec environ 100 gemmes dans Rails 3.0.1 et Ruby 1.9.2

Le temps est perdu dans « config/application.rb »:

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

J'ai essayé de désactiver/activer des gemmes (comme ceux que j'ajouté dernière ou toutes les gemmes liées test) mais il semble comme si c'était un problème impliquant une barrière de la quantité de gemmes totales plutôt que des problèmes de codage spécifiques dans certaines gemmes.

Pour les tests finaux, j'ai créé un nouveau projet Rails 3.0.1 avec un nouveau gemset RVM et ajouté les gemmes une par une. Toujours la même chose à environ 30-50 gemmes (ce qui n'est pas inhabituel pour les grands projets et n'a jamais été un problème).

Des idées (en plus: diminuer votre nombre de gemmes)?

+0

J'ai une solution rapide pour ce problème: Reboot, je cours sur OS X 10.6.4 et il semble avoir quelque chose à voir avec la gestion de la mémoire de RVM ruby ​​1.9.2 (pas sûr cependant) – fredostarr

Répondre

2

Le meilleur que j'ai trouvé est d'utiliser spork.Il fonctionne très bien et compense le démarrage lent.Spork démarre un serveur DRB à laquelle rspec/concombre peut se connecter et utiliser les processus de pré-chargés rubis pour exécuter les tests. il se recharge certains fichiers (tests, classes, ...) pour chaque course, il est donc presque aussi frais que d'un nouveau processus.

https://github.com/timcharper/spork

+0

Ce repo n'existe plus: https : //github.com/timcharper/spork – czerasz

2

Même problème. Ajouter des gemmes appropriées augmente le temps de l'environnement de démarrage par bundler. Je n'ai pas encore résolu ce problème. Cela prend environ 20 secondes avant que les spécifications ne soient exécutées. Cela me rend dingue; .. (

Questions connexes