Rails 3.2.21和Ruby 2.0性能测试问题

时间:2015-05-15 11:13:03

标签: ruby-on-rails-3.2 benchmarking ruby-2.0

运行rails性能测试我不支持输出中的内存和对象。对于ruby 1.9x,可以安装gcdata补丁。但是,我无法弄清楚如何为ruby 2.0安装它。

当我跑步时:

bundle exec rake test:benchmark RAILS_ENV=test

我明白了:

BrowsingTest#test_homepage (247 ms warmup)
           wall_time: 3 ms
              memory: unsupported
             objects: unsupported
             gc_runs: 0
             gc_time: 0 ms
 = 1.42 sFinished tests in 1.500688s, 0.6664 tests/s, 0.0000 assertions/s.
1 tests, 0 assertions, 0 failures, 0 errors, 0 skips

我有Rails 3.2.21和Ruby 2.0:

ruby​​ 2.0.0p598(2014-11-13修订版48408)[x86_64-darwin14.1.0]

1 个答案:

答案 0 :(得分:0)

gcdata补丁仅适用于最新版本的1.9.3。 Ruby> = 2.0.0没有gcdata补丁。 在我看来,这个问题有两种选择:

  1. 保持应用程序的一个分支运行Rails 1.9.3的修补版本,并在那里运行测试。 缺点是结果可能不是100%准确,如果您使用Ruby 2语法,您的分支将会中断。

  2. 找到另一种测试内存使用情况和创建对象的方法,或者根本不使用新应用程序的选项。 好消息是Ruby 2+现在可以更好地处理垃圾收集,你不应该耗尽内存(除非你有兴趣为你的应用程序进行数字比较)。