Ruby on rails 3 rails 3.2加载速度慢-调试显示rails加载两次
我的rails 3.2环境过去加载速度非常慢,有时运行测试、控制台、服务器和生成器所需的时间超过100秒。因此,我从1.9.2升级到ruby 1.9.3,加载时间高达25-30秒,情况稍有好转 然后我看到了这个帖子- 并用这个技巧来检查我的宝石装载时间Ruby on rails 3 rails 3.2加载速度慢-调试显示rails加载两次,ruby-on-rails-3,ruby-on-rails-3.1,rspec-rails,Ruby On Rails 3,Ruby On Rails 3.1,Rspec Rails,我的rails 3.2环境过去加载速度非常慢,有时运行测试、控制台、服务器和生成器所需的时间超过100秒。因此,我从1.9.2升级到ruby 1.9.3,加载时间高达25-30秒,情况稍有好转 然后我看到了这个帖子- 并用这个技巧来检查我的宝石装载时间 puts Benchmark.measure("require #{file}") { Kernel.require file }.format("%n: %t %r") 结果如下: require rails: 0.000000 (0.0
puts Benchmark.measure("require #{file}") {
Kernel.require file
}.format("%n: %t %r")
结果如下:
require rails: 0.000000 (0.000234)
require mysql2: 0.000000 (0.006835)
require uglifier: 0.080000 (0.067291)
require sass-rails: 0.010000 (0.017783)
require jquery-rails: 0.010000 (0.002467)
require devise: 0.840000 (0.855009)
require haml: 0.230000 (0.223640)
require activeadmin: 1.510000 (1.525017)
require paperclip: 0.170000 (0.179652)
require twitter-bootstrap-rails: 0.250000 (0.249430)
require config_reader: 0.000000 (0.001339)
require exception_notifier: 0.530000 (0.528327)
require httparty: 0.130000 (0.134162)
require uuid: 0.770000 (0.761883)
require useragent: 0.040000 (0.043415)
require aws-sdk: 0.090000 (0.093158)
require newrelic_rpm: 0.620000 (0.628278)
require omniauth-openid: 0.630000 (0.633982)
require c2dm: 0.040000 (0.037214)
require thin: 0.100000 (0.103781)
require rspec-rails: 0.000000 (0.001094)
/home/rtdp/.rvm/rubies/ruby-1.9.3-p125/bin/ruby -S rspec ./spec/model/app_spec.rb
No DRb server is running. Running in local process instead ...
require rails: 0.000000 (0.000184)
require mysql2: 0.020000 (0.018071)
require uglifier: 0.070000 (0.072325)
require sass-rails: 0.020000 (0.019724)
require jquery-rails: 0.040000 (0.042998)
require devise: 0.880000 (0.874613)
require haml: 0.200000 (0.212278)
require activeadmin: 1.600000 (1.612621)
require paperclip: 0.160000 (0.157090)
require twitter-bootstrap-rails: 0.260000 (0.260186)
require config_reader: 0.010000 (0.001366)
require exception_notifier: 0.490000 (0.496320)
require httparty: 0.100000 (0.095423)
require uuid: 0.690000 (0.695459)
require useragent: 0.010000 (0.011390)
require aws-sdk: 0.110000 (0.113553)
require newrelic_rpm: 0.480000 (0.481167)
require omniauth-openid: 0.600000 (0.609401)
require c2dm: 0.010000 (0.001735)
require rspec-rails: 0.000000 (0.000735)
require spork: 0.000000 (0.000175)
require factory_girl_rails: 0.160000 (0.170655)
.....
Finished in 0.28406 seconds
5 examples, 0 failures
bundle exec rake 26.12s user 1.20s system 81% cpu 33.504 total
需要轨道:0.000000(0.000234)
需要mysql2:0.000000(0.006835)
所需uglifier:0.080000(0.067291)
需要sass导轨:0.010000(0.017783)
需要jquery rails:0.010000(0.002467)
所需设计:0.840000(0.855009)
所需haml:0.230000(0.223640)
需要activeadmin:1.510000(1.525017)
需要回形针:0.170000(0.179652)
需要twitter引导rails:0.250000(0.249430)
需要配置读取器:0.000000(0.001339)
需要异常通知程序:0.530000(0.528327)
要求HTT方:0.130000(0.134162)
需要uuid:0.770000(0.761883)
需要用户代理:0.040000(0.043415)
需要aws sdk:0.090000(0.093158)
需要newrelic\u rpm:0.620000(0.628278)
需要omniauth openid:0.630000(0.633982)
需要c2dm:0.040000(0.037214)
要求薄:0.100000(0.103781)
需要rspec导轨:0.000000(0.001094)
/home/rtdp/.rvm/rubies/ruby-1.9.3-p125/bin/ruby-S rspec./spec/model/app_spec.rb
没有正在运行的DRb服务器。改为在本地进程中运行。。。
需要导轨:0.000000(0.000184)
需要mysql2:0.020000(0.018071)
需要丑陋的人:0.070000(0.072325)
需要sass导轨:0.020000(0.019724)
需要jquery rails:0.040000(0.042998)
所需设计:0.880000(0.874613)
要求haml:0.200000(0.212278)
需要activeadmin:1.600000(1.612621)
需要回形针:0.160000(0.157090)
需要推特引导轨道:0.260000(0.260186)
需要配置读取器:0.010000(0.001366)
需要异常通知程序:0.490000(0.496320)
要求HTT参与方:0.100000(0.095423)
需要uuid:0.690000(0.695459)
需要用户代理:0.010000(0.011390)
需要aws sdk:0.110000(0.113553)
需要newrelic_rpm:0.480000(0.481167)
需要omniauth openid:0.600000(0.609401)
需要c2dm:0.010000(0.001735)
需要rspec导轨:0.000000(0.000735)
所需spork:0.000000(0.000175)
需要工厂导轨:0.160000(0.170655)
.....
以0.28406秒完成
5例,0例失败
bundle exec rake 26.12s用户1.20s系统81%cpu总数33.504
从这个警告可以看出,DRb is服务器没有运行,它再次加载所有GEM,这正常吗?或者它真的加载了两次
任何rails 3.2应用程序的平均加载时间是多少?更正了
spec\u helper.rb
文件,该文件应删除两次加载行为。试试看
spec_helper.rb
require 'rubygems'
require 'spork'
#uncomment the following line to use spork with the debugger
#require 'spork/ext/ruby-debug'
Spork.prefork do
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
end
end
Spork.each_run do
# This code will be run each time you run your specs.
end
已更正
spec\u helper.rb
文件,该文件应删除两次加载行为。试试看
spec_helper.rb
require 'rubygems'
require 'spork'
#uncomment the following line to use spork with the debugger
#require 'spork/ext/ruby-debug'
Spork.prefork do
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
end
end
Spork.each_run do
# This code will be run each time you run your specs.
end
您使用什么命令来运行RSpec?在项目或主目录中是否有包含--drb选项的.rspec文件?你使用的是Spork吗?它无法加载吗?我有.rspec,我使用的是Spork。由于我的应用程序加载速度非常慢,我想解决这个问题。即使是spork在测试时也会提供一些帮助,比如迁移,脚手架生成和清理也非常慢。你能发布你的
spec\u助手.rb
和.rspec
文件吗?我的spec\u助手在这里-和.rspec中有---颜色--drb
。看起来不像你的spec\u助手。rb
设置正确-我会在下面的答案中添加一个。你有什么命令你过去经常运行RSpec吗?在项目或主目录中是否有包含--drb选项的.rspec文件?你使用的是Spork吗?它无法加载吗?我有.rspec,我使用的是Spork。由于我的应用程序加载速度非常慢,我想解决这个问题。即使是spork在测试时也会提供一些帮助,比如迁移,脚手架生成和清理也非常慢。你能发布你的spec\u助手.rb
和.rspec
文件吗?我的spec\u助手在这里-和.rspec中有---颜色--drb
。看起来不像你的spec\u助手。rb
设置正确-我将在下面的答案中添加一个可以工作的。