Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'benchmark'
- def bench_enumerable_all(bm)
- arr = (1..10).collect{true}
- bm.report("1m array.all?, array 1..10") do
- i = 0
- while i<1000000
- arr.all?
- i+=1
- end
- end
- bm.report("1m array.all?{|x|x==true}, 10-false array") do
- i = 0
- while i<1000000
- arr.all?{|x|x==true}
- i+=1
- end
- end
- end
- def bench_enumerable_any(bm)
- arr = (1..10).collect{false}
- bm.report("1m array.any?, 10-false array") do
- i = 0
- while i<1000000
- arr.any?
- i+=1
- end
- end
- arr = (1..10).select{true}
- bm.report("1m array.any?{|x| x==5},array 1..10") do
- i = 0
- while i<1000000
- arr.any?{|x| x== 5}
- i+=1
- end
- end
- end
- def bench_enumerable_collect(bm)
- arr = (1..10).select{true}
- bm.report("1m array.collect{|x| x+1},array 1..10") do
- i = 0
- while i<1000000
- arr.collect{|x| x+1}
- i+=1
- end
- end
- arr = (1..10).select{true}
- bm.report("1m array.collect,array 1..10") do
- i = 0
- while i<1000000
- arr.collect
- i+=1
- end
- end
- end
- def bench_enumerable_collect!(bm)
- arr = (1..10).select{true}
- bm.report("1m array.collect!{|x| x+1},array 1..10") do
- i = 0
- while i<1000000
- arr.collect!{|x| x+1}
- i+=1
- end
- end
- end
- def bench_enumerable_find(bm)
- arr = (1..10).collect
- bm.report("1m array.find{|x| x==5},array 1..10") do
- i = 0
- while i<1000000
- arr.find{|x| x==5}
- i+=1
- end
- end
- end
- def bench_enumerable_each_with_index(bm)
- arr = (1..10).collect
- bm.report("1m each_with_index{|x, i| true},array 1..10") do
- i = 0
- while i<1000000
- arr.each_with_index{|x, index| true}
- i+=1
- end
- end
- end
- def bench_enumerable_to_a(bm)
- arr = (1..10).collect
- bm.report("1m array.to_a, array 1..10") do
- i = 0
- while i<1000000
- arr.to_a
- i+=1
- end
- end
- end
- def bench_enumerable_grep(bm)
- arr = (1..10).collect
- bm.report("1m array.grep 3..7, array 1..10") do
- i = 0
- while i<1000000
- arr.grep 3..7
- i+=1
- end
- end
- end
- def bench_enumerable_inject(bm)
- arr = (1..10).collect
- bm.report("1m inject{|s, n| s+n},array 1..10") do
- i = 0
- while i<1000000
- arr.inject{|sum, n| sum + n }
- i+=1
- end
- end
- end
- def bench_enumerable_max(bm)
- arr = (1..10).collect
- bm.report("1m array.max,array 1..10") do
- i = 0
- while i<1000000
- arr.max
- i+=1
- end
- end
- end
- def bench_enumerable_min(bm)
- arr = (1..10).collect
- bm.report("1m array.min,array 1..10") do
- i = 0
- while i<1000000
- arr.min
- i+=1
- end
- end
- end
- def bench_enumerable_reject(bm)
- arr = (1..10).collect
- bm.report("1m reject{|i|i%3==0},array 1..10") do
- i = 0
- while i<1000000
- arr.reject {|i| i % 3 == 0 }
- i+=1
- end
- end
- end
- if $0 == __FILE__
- if ARGV[0]
- ARGV[0].to_i.times do
- Benchmark.bm(40) do |bm|
- bench_enumerable_all(bm)
- bench_enumerable_any(bm)
- bench_enumerable_collect(bm)
- bench_enumerable_find(bm)
- bench_enumerable_each_with_index(bm)
- bench_enumerable_to_a(bm)
- bench_enumerable_grep(bm)
- end
- end
- else
- Benchmark.bmbm do |bm|
- bench_enumerable_all(bm)
- bench_enumerable_any(bm)
- bench_enumerable_collect(bm)
- bench_enumerable_collect!(bm)
- bench_enumerable_find(bm)
- bench_enumerable_each_with_index(bm)
- bench_enumerable_to_a(bm)
- bench_enumerable_grep(bm)
- bench_enumerable_inject(bm)
- bench_enumerable_max(bm)
- bench_enumerable_min(bm)
- end
- end
- end
Add Comment
Please, Sign In to add comment