X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Frailties%2Flib%2Fcommands%2Fperformance%2Fbenchmarker.rb;fp=vendor%2Frails%2Frailties%2Flib%2Fcommands%2Fperformance%2Fbenchmarker.rb;h=e8804fe1bfdd69cdd8eff932fe15b9d3ecb29636;hb=437aa336c44c74a30aeea16a06743c32747ed661;hp=0000000000000000000000000000000000000000;hpb=97a0772b06264134cfe38e7494f9427efe0840a0;p=feedcatcher.git diff --git a/vendor/rails/railties/lib/commands/performance/benchmarker.rb b/vendor/rails/railties/lib/commands/performance/benchmarker.rb new file mode 100644 index 0000000..e8804fe --- /dev/null +++ b/vendor/rails/railties/lib/commands/performance/benchmarker.rb @@ -0,0 +1,24 @@ +if ARGV.empty? + puts "Usage: ./script/performance/benchmarker [times] 'Person.expensive_way' 'Person.another_expensive_way' ..." + exit 1 +end + +begin + N = Integer(ARGV.first) + ARGV.shift +rescue ArgumentError + N = 1 +end + +require RAILS_ROOT + '/config/environment' +require 'benchmark' +include Benchmark + +# Don't include compilation in the benchmark +ARGV.each { |expression| eval(expression) } + +bm(6) do |x| + ARGV.each_with_index do |expression, idx| + x.report("##{idx + 1}") { N.times { eval(expression) } } + end +end