【发布时间】:2012-02-29 19:47:04
【问题描述】:
我的 rails 3.2 环境过去加载速度非常慢,有时需要超过 100 秒才能完成所有事情 - 运行测试、控制台、服务器和生成器。所以我从 1.9.2 升级到 ruby 1.9.3,加载时间达到了 25-30 秒,情况有所好转。
然后我看到了这个帖子 - https://stackoverflow.com/a/5071198/392345 并使用这个技巧来检查我的宝石加载时间
puts Benchmark.measure("require #{file}") {
Kernel.require file
}.format("%n: %t %r")
结果如下——
需要导轨:0.000000 (0.000234) 需要 mysql2: 0.000000 (0.006835) 需要丑化剂:0.080000 (0.067291) 需要 sass-rails:0.010000 (0.017783) 需要 jquery-rails: 0.010000 (0.002467) 需要设计:0.840000 (0.855009) 需要haml:0.230000 (0.223640) 需要活动管理员:1.510000 (1.525017) 需要回形针:0.170000 (0.179652) 需要 twitter-bootstrap-rails: 0.250000 (0.249430) 需要 config_reader: 0.000000 (0.001339) 需要异常通知器:0.530000 (0.528327) 需要 httparty: 0.130000 (0.134162) 需要 uuid:0.770000 (0.761883) 需要用户代理:0.040000 (0.043415) 需要 aws-sdk:0.090000 (0.093158) 需要 newrelic_rpm:0.620000 (0.628278) 需要omniauth-openid:0.630000 (0.633982) 需要 c2dm:0.040000 (0.037214) 要求薄:0.100000 (0.103781) 需要 rspec-rails: 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-rails: 0.020000 (0.019724) 需要 jquery-rails: 0.040000 (0.042998) 需要设计:0.880000 (0.874613) 需要haml:0.200000(0.212278) 需要活动管理员:1.600000 (1.612621) 需要回形针:0.160000 (0.157090) 需要 twitter-bootstrap-rails: 0.260000 (0.260186) 需要 config_reader: 0.010000 (0.001366) 需要 exception_notifier:0.490000 (0.496320) 需要 httparty: 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-rails: 0.000000 (0.000735) 需要spork:0.000000 (0.000175) 需要 factory_girl_rails:0.160000 (0.170655) ...... 在 0.28406 秒内完成 5 个示例,0 次失败 bundle exec rake 26.12s user 1.20s system 81% cpu 33.504 total从这里可以看出,在 DRb is server is not running 的警告之后,它再次加载所有 gem,这是正常的吗?还是真的加载了两次?
任何 Rails 3.2 应用程序的平均加载时间是多少?
【问题讨论】:
-
你使用什么命令来运行 RSpec?您在项目或主目录中是否有包含 --drb 选项的 .rspec 文件?您是否在使用 Spork 并且无法加载?
-
我有 .rspec,我正在使用 spork。由于我的应用程序加载非常缓慢,我想解决这个问题。甚至 spork 在测试时也有一点帮助,其他的东西,比如迁移、脚手架生成和 rake 也很慢。
-
你能发布你的
spec_helper.rb和.rspec文件吗? -
我的 spec_helper 在这里 - gist.github.com/78634ec572c1cbf40490 和 .rspec 里面有 -
--color --drb。 -
看起来您的
spec_helper.rb设置不正确 - 我将在下面的答案中添加一个应该可以工作的内容。
标签: ruby-on-rails-3 ruby-on-rails-3.1 rspec-rails