非常慢的bundler 1.0.3(Bundler.require)在Rails 3.0.1和Ruby 1.9.2中有大约100个宝石

时间:2010-10-27 13:29:44

标签: ruby-on-rails ruby-on-rails-3 bundler

我正在使用Rails 3.0.1,Bundler 1.0.3和Ruby 1.9.2p0(2010-08-18修订版29036)。一切都很好,很快,直到我开始添加Devise& Omniauth。从那以后,涉及初始化Bundler(在application.rb中调用Bundler.require)的所有内容花费了很长时间(通过30-50秒,这对于例如调用'rake routes'来说是很多的。)

'config / application.rb'中的时间丢失了:

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

我试图禁用/启用宝石(比如我最后添加的宝石或所有与测试相关的宝石),但似乎这是一个涉及总宝石数量障碍的问题,而不是某些特定的编码问题。宝石。

对于最终测试,我使用新的RVM gemset创建了一个新的Rails 3.0.1项目,并逐个添加了gem。大约30-50颗宝石仍然是相同的(这对大型项目来说并不罕见,而且以前从未出现过问题)。

任何想法(除了:减少宝石数量)?

2 个答案:

答案 0 :(得分:2)

同样的问题。适当添加gem可以通过bundler增加启动环境时间。我还没有解决这个问题。在规格运行之前大约需要20秒。 这让我很疯狂;(

答案 1 :(得分:2)

我最好的就是利用spork。它运行良好,弥补了慢启动。 Spork启动rspec / cucumber可以连接的DRB服务器,并使用预加载的ruby进程来运行测试。它为每次运行重新加载某些文件(测试,类,......),因此它几乎与新进程一样新鲜。

https://github.com/timcharper/spork