1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
require 'benchmark'
# member?
$n = 50000
def range_nan
$n.times { ('a'..'k').member?('f') }
$n.times { ('a'..'k').member?('r') }
end
def range_small
$n.times { (0..6).member?(3) }
$n.times { (0..6).member?(7) }
end
def range_med
$n.times { (0..1000).member?(500) }
$n.times { (0..1000).member?(1001) }
end
# index
$a = [ 'x' ] * 100
$m = 500000
def range_index
i = 1
$m.times { $a[1..i]; i += 1 }
end
def length_index
i = 1
$m.times { $a[1,i]; i += 1 }
end
### --- bench ---
puts "\nINDEXING"
Benchmark.bm(15) do |b|
b.report("range_index:") { range_index }
b.report("length_index:") { length_index }
end
puts "\n\nNew vs. Old\n"
puts "\nCURRENT"
Benchmark.bm(15) do |b|
b.report("range_nan:") { range_nan }
b.report("range_samll:") { range_small }
b.report("range_med:") { range_med }
end
puts "\nNEW"
require 'trix-dev/range/range'
Benchmark.bm(15) do |b|
b.report("range_nan:") { range_nan }
b.report("range_samll:") { range_small }
b.report("range_med:") { range_med }
end
puts
|