File: bench_range.rb

package info (click to toggle)
ruby-facets 2.9.2-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 9,824 kB
  • sloc: ruby: 25,483; xml: 90; makefile: 20
file content (64 lines) | stat: -rw-r--r-- 1,035 bytes parent folder | download
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