开发者

Benchmarking Rails Model Methods

Is there something similar to Ruby Benchmark within Rails? I have used Ruby benchmark in the past to compare different bits of code, but none of it was Rails related. I would like to use my application models in some benchmarking to do something along the lines of...

#!/usr/bin/ruby
require 'benchmark'

Benchmark.bmbm do |x|
  x.report("Benchmark 1") do 
    1_000_000.times do
      # do something here...
    end
  end

  x.report("Benchmark 2") do
    1_000_000.times do
      # Do something else here...
    end
  end
end

Which gives me some output like this:

Rehearsal -----------------------------------------------
Benchmark 1   0.070000   0.000000   0.070000 (  0.069236)
Benchmark 2   0.070000   0.000000   0.070000 (  0.069227)
-------------------------------------- total: 0.140000sec

                  user     system      total        real
Benchmark 1   0.070000   0.000000   0.070000 (  0.069793)
Benchmark 2   0.070000   0.000000   0.070000 (  0.069203)

I looked into script/perform开发者_开发技巧ance/benchmarker and script/performance/profiler, but I couldn't figure out a way to compare methods. I also looked into doing it within a test, but I don't have any sort of assertions, so that didn't seem to make sense.


Performance testing your rails application might be all you need. I think that's all you can do with standalone Rails.


Rails added a benchmark generator.

rails g benchmark some_benchmark

it creates the file at

script/benchmarks/some_benchmark.rb

It should automatically add the ips-benchmark gem to your gemfile after running bundle but if it doesn't just add it under the development section in your gemfile.

run it in the terminal by doing

ruby script/benchmarks/some_benchmark.rb

since it loads config/environment.rb in the benchmark file all models are accessible.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜