benchmark-interface 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +39 -0
  3. data/Gemfile +2 -0
  4. data/LICENCE +7 -0
  5. data/README.md +237 -0
  6. data/benchmark-interface.gemspec +20 -0
  7. data/bin/benchmark +15 -0
  8. data/examples/bench9000.rb +23 -0
  9. data/examples/bench9000micro.rb +31 -0
  10. data/examples/benchmark.rb +40 -0
  11. data/examples/bips.rb +34 -0
  12. data/examples/clamp.rb +17 -0
  13. data/examples/interface.rb +13 -0
  14. data/examples/long.rb +9 -0
  15. data/examples/mri.rb +15 -0
  16. data/examples/perfer.rb +25 -0
  17. data/examples/rbench.rb +46 -0
  18. data/examples/readme.rb +12 -0
  19. data/examples/script.rb +14 -0
  20. data/lib/benchmark-interface.rb +40 -0
  21. data/lib/benchmark-interface/backends/bench9000.rb +87 -0
  22. data/lib/benchmark-interface/backends/benchmark.rb +68 -0
  23. data/lib/benchmark-interface/backends/bips.rb +49 -0
  24. data/lib/benchmark-interface/backends/simple.rb +38 -0
  25. data/lib/benchmark-interface/benchmark-set.rb +85 -0
  26. data/lib/benchmark-interface/benchmark.rb +72 -0
  27. data/lib/benchmark-interface/frontends/bench9000.rb +21 -0
  28. data/lib/benchmark-interface/frontends/bench9000micro.rb +19 -0
  29. data/lib/benchmark-interface/frontends/benchmark.rb +50 -0
  30. data/lib/benchmark-interface/frontends/bips.rb +40 -0
  31. data/lib/benchmark-interface/frontends/mri.rb +84 -0
  32. data/lib/benchmark-interface/frontends/perfer.rb +27 -0
  33. data/lib/benchmark-interface/frontends/rbench.rb +64 -0
  34. data/lib/benchmark-interface/require.rb +38 -0
  35. data/lib/benchmark-interface/run.rb +111 -0
  36. data/lib/benchmark-interface/version.rb +13 -0
  37. data/tests/expected/bench9000-bips.txt +8 -0
  38. data/tests/expected/bench9000-bm.txt +2 -0
  39. data/tests/expected/bench9000-bmbm.txt +2 -0
  40. data/tests/expected/bench9000-simple.txt +2 -0
  41. data/tests/expected/bench9000micro-bips.txt +8 -0
  42. data/tests/expected/bench9000micro-bm.txt +2 -0
  43. data/tests/expected/bench9000micro-bmbm.txt +2 -0
  44. data/tests/expected/bench9000micro-simple.txt +2 -0
  45. data/tests/expected/benchmark-bips.txt +72 -0
  46. data/tests/expected/benchmark-bm.txt +12 -0
  47. data/tests/expected/benchmark-bmbm.txt +12 -0
  48. data/tests/expected/benchmark-simple.txt +22 -0
  49. data/tests/expected/bips-bips.txt +2 -0
  50. data/tests/expected/bips-bm.txt +7 -0
  51. data/tests/expected/bips-bmbm.txt +7 -0
  52. data/tests/expected/bips-simple.txt +11 -0
  53. data/tests/expected/interface-bips.txt +24 -0
  54. data/tests/expected/interface-bm.txt +4 -0
  55. data/tests/expected/interface-bmbm.txt +4 -0
  56. data/tests/expected/interface-simple.txt +6 -0
  57. data/tests/expected/long-bips.txt +9 -0
  58. data/tests/expected/long-bm.txt +2 -0
  59. data/tests/expected/long-bmbm.txt +2 -0
  60. data/tests/expected/long-simple.txt +2 -0
  61. data/tests/expected/mri-bips.txt +9 -0
  62. data/tests/expected/mri-bm.txt +2 -0
  63. data/tests/expected/mri-bmbm.txt +2 -0
  64. data/tests/expected/mri-simple.txt +2 -0
  65. data/tests/expected/perfer-bips.txt +20 -0
  66. data/tests/expected/perfer-bm.txt +4 -0
  67. data/tests/expected/perfer-bmbm.txt +4 -0
  68. data/tests/expected/perfer-simple.txt +5 -0
  69. data/tests/expected/rbench-bips.txt +42 -0
  70. data/tests/expected/rbench-bm.txt +7 -0
  71. data/tests/expected/rbench-bmbm.txt +7 -0
  72. data/tests/expected/rbench-simple.txt +12 -0
  73. data/tests/expected/readme-bips.txt +18 -0
  74. data/tests/expected/readme-bm.txt +3 -0
  75. data/tests/expected/readme-bmbm.txt +3 -0
  76. data/tests/expected/readme-simple.txt +4 -0
  77. data/tests/expected/script-bips.txt +18 -0
  78. data/tests/expected/script-bm.txt +3 -0
  79. data/tests/expected/script-bmbm.txt +3 -0
  80. data/tests/expected/script-simple.txt +4 -0
  81. data/tests/rewritten/mri.rb +15 -0
  82. data/tests/tests.rb +73 -0
  83. data/tests/tools/squash.rb +63 -0
  84. metadata +130 -0
@@ -0,0 +1,2 @@
1
+ user system total real
2
+ mri XXX XXX XXX (XXX)
@@ -0,0 +1,2 @@
1
+ user system total real
2
+ mri XXX XXX XXX (XXX)
@@ -0,0 +1,2 @@
1
+ mri
2
+ XXX
@@ -0,0 +1,20 @@
1
+ This benchmark set contains blocks that want a number of iterations - running all iterations XXX times
2
+ These are long benchmarks - we're increasing warmup and sample time
3
+ Warming up --------------------------------------
4
+ clamp_a XXX i/100ms
5
+ clamp_b XXX i/100ms
6
+ clamp_a XXX i/100ms
7
+ clamp_b XXX i/100ms
8
+ clamp_a XXX i/100ms
9
+ clamp_b XXX i/100ms
10
+ Calculating -------------------------------------
11
+ clamp_a XXX (XXX%) i/s - XXX
12
+ clamp_b XXX (XXX%) i/s - XXX
13
+ clamp_a XXX (XXX%) i/s - XXX
14
+ clamp_b XXX (XXX%) i/s - XXX
15
+ clamp_a XXX (XXX%) i/s - XXX
16
+ clamp_b XXX (XXX%) i/s - XXX
17
+
18
+ Comparison:
19
+ XXX
20
+
@@ -0,0 +1,4 @@
1
+ This benchmark set contains blocks that want a number of iterations - running all iterations XXX times
2
+ user system total real
3
+ clamp_a XXX XXX XXX (XXX)
4
+ clamp_b XXX XXX XXX (XXX)
@@ -0,0 +1,4 @@
1
+ This benchmark set contains blocks that want a number of iterations - running all iterations XXX times
2
+ user system total real
3
+ clamp_a XXX XXX XXX (XXX)
4
+ clamp_b XXX XXX XXX (XXX)
@@ -0,0 +1,5 @@
1
+ This benchmark set contains blocks that want a number of iterations - running all iterations XXX times
2
+ clamp_a
3
+ XXX
4
+ clamp_b
5
+ XXX
@@ -0,0 +1,42 @@
1
+ Warming up --------------------------------------
2
+ clamp_a1 XXX i/100ms
3
+ clamp_b1 XXX i/100ms
4
+ clamp2-clamp_a2-one XXX i/100ms
5
+ clamp2-clamp_a2-two XXX i/100ms
6
+ clamp2-clamp_b2-one XXX i/100ms
7
+ clamp2-clamp_b2-two XXX i/100ms
8
+ clamp_a1 XXX i/100ms
9
+ clamp_b1 XXX i/100ms
10
+ clamp2-clamp_a2-one XXX i/100ms
11
+ clamp2-clamp_a2-two XXX i/100ms
12
+ clamp2-clamp_b2-one XXX i/100ms
13
+ clamp2-clamp_b2-two XXX i/100ms
14
+ clamp_a1 XXX i/100ms
15
+ clamp_b1 XXX i/100ms
16
+ clamp2-clamp_a2-one XXX i/100ms
17
+ clamp2-clamp_a2-two XXX i/100ms
18
+ clamp2-clamp_b2-one XXX i/100ms
19
+ clamp2-clamp_b2-two XXX i/100ms
20
+ Calculating -------------------------------------
21
+ clamp_a1 XXX (XXX%) i/s - XXX
22
+ clamp_b1 XXX (XXX%) i/s - XXX
23
+ clamp2-clamp_a2-one XXX (XXX%) i/s - XXX
24
+ clamp2-clamp_a2-two XXX (XXX%) i/s - XXX
25
+ clamp2-clamp_b2-one XXX (XXX%) i/s - XXX
26
+ clamp2-clamp_b2-two XXX (XXX%) i/s - XXX
27
+ clamp_a1 XXX (XXX%) i/s - XXX
28
+ clamp_b1 XXX (XXX%) i/s - XXX
29
+ clamp2-clamp_a2-one XXX (XXX%) i/s - XXX
30
+ clamp2-clamp_a2-two XXX (XXX%) i/s - XXX
31
+ clamp2-clamp_b2-one XXX (XXX%) i/s - XXX
32
+ clamp2-clamp_b2-two XXX (XXX%) i/s - XXX
33
+ clamp_a1 XXX (XXX%) i/s - XXX
34
+ clamp_b1 XXX (XXX%) i/s - XXX
35
+ clamp2-clamp_a2-one XXX (XXX%) i/s - XXX
36
+ clamp2-clamp_a2-two XXX (XXX%) i/s - XXX
37
+ clamp2-clamp_b2-one XXX (XXX%) i/s - XXX
38
+ clamp2-clamp_b2-two XXX (XXX%) i/s - XXX
39
+
40
+ Comparison:
41
+ XXX
42
+
@@ -0,0 +1,7 @@
1
+ user system total real
2
+ clamp_a1 XXX XXX XXX (XXX)
3
+ clamp_b1 XXX XXX XXX (XXX)
4
+ clamp2-clamp_a2-one XXX XXX XXX (XXX)
5
+ clamp2-clamp_a2-two XXX XXX XXX (XXX)
6
+ clamp2-clamp_b2-one XXX XXX XXX (XXX)
7
+ clamp2-clamp_b2-two XXX XXX XXX (XXX)
@@ -0,0 +1,7 @@
1
+ user system total real
2
+ clamp_a1 XXX XXX XXX (XXX)
3
+ clamp_b1 XXX XXX XXX (XXX)
4
+ clamp2-clamp_a2-one XXX XXX XXX (XXX)
5
+ clamp2-clamp_a2-two XXX XXX XXX (XXX)
6
+ clamp2-clamp_b2-one XXX XXX XXX (XXX)
7
+ clamp2-clamp_b2-two XXX XXX XXX (XXX)
@@ -0,0 +1,12 @@
1
+ clamp_a1
2
+ XXX
3
+ clamp_b1
4
+ XXX
5
+ clamp2-clamp_a2-one
6
+ XXX
7
+ clamp2-clamp_a2-two
8
+ XXX
9
+ clamp2-clamp_b2-one
10
+ XXX
11
+ clamp2-clamp_b2-two
12
+ XXX
@@ -0,0 +1,18 @@
1
+ Warming up --------------------------------------
2
+ mul XXX i/100ms
3
+ pow XXX i/100ms
4
+ mul XXX i/100ms
5
+ pow XXX i/100ms
6
+ mul XXX i/100ms
7
+ pow XXX i/100ms
8
+ Calculating -------------------------------------
9
+ mul XXX (XXX%) i/s - XXX
10
+ pow XXX (XXX%) i/s - XXX
11
+ mul XXX (XXX%) i/s - XXX
12
+ pow XXX (XXX%) i/s - XXX
13
+ mul XXX (XXX%) i/s - XXX
14
+ pow XXX (XXX%) i/s - XXX
15
+
16
+ Comparison:
17
+ XXX
18
+
@@ -0,0 +1,3 @@
1
+ user system total real
2
+ mul XXX XXX XXX (XXX)
3
+ pow XXX XXX XXX (XXX)
@@ -0,0 +1,3 @@
1
+ user system total real
2
+ mul XXX XXX XXX (XXX)
3
+ pow XXX XXX XXX (XXX)
@@ -0,0 +1,4 @@
1
+ mul
2
+ XXX
3
+ pow
4
+ XXX
@@ -0,0 +1,18 @@
1
+ Warming up --------------------------------------
2
+ clamp_a XXX i/100ms
3
+ clamp_b XXX i/100ms
4
+ clamp_a XXX i/100ms
5
+ clamp_b XXX i/100ms
6
+ clamp_a XXX i/100ms
7
+ clamp_b XXX i/100ms
8
+ Calculating -------------------------------------
9
+ clamp_a XXX (XXX%) i/s - XXX
10
+ clamp_b XXX (XXX%) i/s - XXX
11
+ clamp_a XXX (XXX%) i/s - XXX
12
+ clamp_b XXX (XXX%) i/s - XXX
13
+ clamp_a XXX (XXX%) i/s - XXX
14
+ clamp_b XXX (XXX%) i/s - XXX
15
+
16
+ Comparison:
17
+ XXX
18
+
@@ -0,0 +1,3 @@
1
+ user system total real
2
+ clamp_a XXX XXX XXX (XXX)
3
+ clamp_b XXX XXX XXX (XXX)
@@ -0,0 +1,3 @@
1
+ user system total real
2
+ clamp_a XXX XXX XXX (XXX)
3
+ clamp_b XXX XXX XXX (XXX)
@@ -0,0 +1,4 @@
1
+ clamp_a
2
+ XXX
3
+ clamp_b
4
+ XXX
@@ -0,0 +1,15 @@
1
+ # Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved. This
2
+ # code is released under a tri EPL/GPL/LGPL license. You can use it,
3
+ # redistribute it and/or modify it under the terms of the:
4
+ #
5
+ # Eclipse Public License version 1.0
6
+ # GNU General Public License version 2
7
+ # GNU Lesser General Public License version 2.1
8
+
9
+ array = [1, 2, 3]
10
+
11
+ i = 0
12
+ BenchmarkInterface.benchmark { i = 0; while i < 30_000_000
13
+ i += 1
14
+ array.length
15
+ end }
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved. This
4
+ # code is released under a tri EPL/GPL/LGPL license. You can use it,
5
+ # redistribute it and/or modify it under the terms of the:
6
+ #
7
+ # Eclipse Public License version 1.0
8
+ # GNU General Public License version 2
9
+ # GNU Lesser General Public License version 2.1
10
+
11
+ test_ruby = ENV['TEST_RUBY'] || 'ruby'
12
+ version = RUBY_VERSION.split('.').first(2).map(&:to_i)
13
+ earlier_than_21 = version[0] < 2 || (version[0] == 2 && version[1] < 1) || test_ruby.include?('topaz')
14
+
15
+ regenerate = ARGV.delete('--regenerate')
16
+ resquash = ARGV.delete('--resquash')
17
+
18
+ examples = Dir.glob('examples/*.rb')
19
+ examples.delete('examples/clamp.rb')
20
+
21
+ if ARGV.empty?
22
+ backends = ['--simple', '--bm', '--bmbm', '--bips']
23
+ else
24
+ backends = ARGV
25
+ end
26
+
27
+ failed = false
28
+
29
+ test_example_backend = Proc.new do |example, backend, options|
30
+ puts "$ #{example} #{backend} #{options}"
31
+
32
+ expected_file = "tests/expected/#{File.basename(example, '.rb')}-#{backend[2..-1]}.txt"
33
+
34
+ if resquash
35
+ resquashed = `cat #{expected_file} | tests/tools/squash.rb`
36
+ File.write expected_file, resquashed
37
+ else
38
+ actual = `#{test_ruby} bin/benchmark #{example} #{backend} #{options} | tee /dev/tty | tests/tools/squash.rb`
39
+
40
+ if regenerate
41
+ File.write expected_file, actual
42
+ else
43
+ expected = File.read expected_file
44
+ if expected != actual
45
+ puts 'not as expected!'
46
+ puts 'expected:'
47
+ puts expected
48
+ puts 'actual:'
49
+ puts actual
50
+ failed = true
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ examples.each do |example|
57
+ backends.each do |backend|
58
+ if example == 'examples/mri.rb'
59
+ test_example_backend.call example, backend, '' unless earlier_than_21
60
+
61
+ begin
62
+ `cp tests/rewritten/mri.rb mri-rewrite-cache.rb`
63
+ test_example_backend.call example, backend, '--use-cache'
64
+ ensure
65
+ `rm -f mri-rewrite-cache.rb`
66
+ end
67
+ else
68
+ test_example_backend.call example, backend, ''
69
+ end
70
+ end
71
+ end
72
+
73
+ abort if failed
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: UTF-8
3
+
4
+ # Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved. This
5
+ # code is released under a tri EPL/GPL/LGPL license. You can use it,
6
+ # redistribute it and/or modify it under the terms of the:
7
+ #
8
+ # Eclipse Public License version 1.0
9
+ # GNU General Public License version 2
10
+ # GNU Lesser General Public License version 2.1
11
+
12
+ state = :normal
13
+ last_xxx = false
14
+
15
+ ARGF.set_encoding(Encoding::UTF_8) if defined?(Encoding)
16
+
17
+ ARGF.each_line do |line|
18
+
19
+ # Squash multiple whitespace into a single space
20
+ line.gsub! /\s+/, ' '
21
+
22
+ # Squash any numbers into XXX
23
+ line.gsub! /\b\d+(\.\d+)?[kMBTQs]?\b/, 'XXX'
24
+
25
+ # Squash ±
26
+ line.gsub! /±\s*/, ''
27
+
28
+ # Squash bips' XXX in XXX to just XXX
29
+ line.gsub! /XXX in XXX/, 'XXX'
30
+
31
+ # Squash whitespace out of ( XXX )
32
+ line.gsub! /\(\s*XXX\s*\)/, '(XXX)'
33
+
34
+ # Remove
35
+ if line.strip == 'These are short benchmarks - we\'re running each XXX times so they take about a second'
36
+ line = nil
37
+ end
38
+
39
+ # Turn any lines following Comparison: into XXX as the order can change
40
+ if state == :normal
41
+ if line && line.strip == 'Comparison:'
42
+ state = :comparison
43
+ end
44
+ elsif state == :comparison
45
+ if line && line.strip.empty?
46
+ state = :normal
47
+ else
48
+ line = ' XXX'
49
+ end
50
+ end
51
+
52
+ if line && line.strip == 'XXX'
53
+ if last_xxx
54
+ line = nil
55
+ else
56
+ last_xxx = true
57
+ end
58
+ else
59
+ last_xxx = false
60
+ end
61
+
62
+ puts line if line
63
+ end
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: benchmark-interface
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - Chris Seaton
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-05-19 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A new format for writing Ruby benchmarks, and a tool that lets you run
14
+ benchmarks written in many formats with many different benchmarking tools
15
+ email:
16
+ - chris@chrisseaton.com
17
+ executables:
18
+ - benchmark
19
+ extensions: []
20
+ extra_rdoc_files: []
21
+ files:
22
+ - ".travis.yml"
23
+ - Gemfile
24
+ - LICENCE
25
+ - README.md
26
+ - benchmark-interface.gemspec
27
+ - bin/benchmark
28
+ - examples/bench9000.rb
29
+ - examples/bench9000micro.rb
30
+ - examples/benchmark.rb
31
+ - examples/bips.rb
32
+ - examples/clamp.rb
33
+ - examples/interface.rb
34
+ - examples/long.rb
35
+ - examples/mri.rb
36
+ - examples/perfer.rb
37
+ - examples/rbench.rb
38
+ - examples/readme.rb
39
+ - examples/script.rb
40
+ - lib/benchmark-interface.rb
41
+ - lib/benchmark-interface/backends/bench9000.rb
42
+ - lib/benchmark-interface/backends/benchmark.rb
43
+ - lib/benchmark-interface/backends/bips.rb
44
+ - lib/benchmark-interface/backends/simple.rb
45
+ - lib/benchmark-interface/benchmark-set.rb
46
+ - lib/benchmark-interface/benchmark.rb
47
+ - lib/benchmark-interface/frontends/bench9000.rb
48
+ - lib/benchmark-interface/frontends/bench9000micro.rb
49
+ - lib/benchmark-interface/frontends/benchmark.rb
50
+ - lib/benchmark-interface/frontends/bips.rb
51
+ - lib/benchmark-interface/frontends/mri.rb
52
+ - lib/benchmark-interface/frontends/perfer.rb
53
+ - lib/benchmark-interface/frontends/rbench.rb
54
+ - lib/benchmark-interface/require.rb
55
+ - lib/benchmark-interface/run.rb
56
+ - lib/benchmark-interface/version.rb
57
+ - tests/expected/bench9000-bips.txt
58
+ - tests/expected/bench9000-bm.txt
59
+ - tests/expected/bench9000-bmbm.txt
60
+ - tests/expected/bench9000-simple.txt
61
+ - tests/expected/bench9000micro-bips.txt
62
+ - tests/expected/bench9000micro-bm.txt
63
+ - tests/expected/bench9000micro-bmbm.txt
64
+ - tests/expected/bench9000micro-simple.txt
65
+ - tests/expected/benchmark-bips.txt
66
+ - tests/expected/benchmark-bm.txt
67
+ - tests/expected/benchmark-bmbm.txt
68
+ - tests/expected/benchmark-simple.txt
69
+ - tests/expected/bips-bips.txt
70
+ - tests/expected/bips-bm.txt
71
+ - tests/expected/bips-bmbm.txt
72
+ - tests/expected/bips-simple.txt
73
+ - tests/expected/interface-bips.txt
74
+ - tests/expected/interface-bm.txt
75
+ - tests/expected/interface-bmbm.txt
76
+ - tests/expected/interface-simple.txt
77
+ - tests/expected/long-bips.txt
78
+ - tests/expected/long-bm.txt
79
+ - tests/expected/long-bmbm.txt
80
+ - tests/expected/long-simple.txt
81
+ - tests/expected/mri-bips.txt
82
+ - tests/expected/mri-bm.txt
83
+ - tests/expected/mri-bmbm.txt
84
+ - tests/expected/mri-simple.txt
85
+ - tests/expected/perfer-bips.txt
86
+ - tests/expected/perfer-bm.txt
87
+ - tests/expected/perfer-bmbm.txt
88
+ - tests/expected/perfer-simple.txt
89
+ - tests/expected/rbench-bips.txt
90
+ - tests/expected/rbench-bm.txt
91
+ - tests/expected/rbench-bmbm.txt
92
+ - tests/expected/rbench-simple.txt
93
+ - tests/expected/readme-bips.txt
94
+ - tests/expected/readme-bm.txt
95
+ - tests/expected/readme-bmbm.txt
96
+ - tests/expected/readme-simple.txt
97
+ - tests/expected/script-bips.txt
98
+ - tests/expected/script-bm.txt
99
+ - tests/expected/script-bmbm.txt
100
+ - tests/expected/script-simple.txt
101
+ - tests/rewritten/mri.rb
102
+ - tests/tests.rb
103
+ - tests/tools/squash.rb
104
+ homepage: https://github.com/jruby/benchmark-interface
105
+ licenses:
106
+ - EPL-1.0
107
+ - GPL-2.0
108
+ - LGPL-2.1
109
+ metadata: {}
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ requirements: []
125
+ rubyforge_project:
126
+ rubygems_version: 2.5.1
127
+ signing_key:
128
+ specification_version: 4
129
+ summary: One Ruby benchmarking interface to rule them all
130
+ test_files: []