ruby_micro_benchmarks 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,34 @@
1
+ @input_data = [0,1000,10_000]
2
+ @count = 1_000_000
3
+
4
+ benchmark("array.first", @input_data, @count) do |array|
5
+ array.first
6
+ end
7
+
8
+ benchmark("array[0]", @input_data, @count) do |array|
9
+ array[0]
10
+ end
11
+
12
+ benchmark("array.last", @input_data, @count) do |array|
13
+ array.last
14
+ end
15
+
16
+ benchmark("array[-1]", @input_data, @count) do |array|
17
+ array[-1]
18
+ end
19
+
20
+ benchmark("array.map(&:to_i)", [0,100,1000], @count) do |array|
21
+ array.map(&:to_i)
22
+ end
23
+
24
+ benchmark("array.map{|n| n.to_i }", [0,100,1000], @count) do |array|
25
+ array.map{|n| n.to_i }
26
+ end
27
+
28
+ benchmark("[]", nil, @count) do |array|
29
+ []
30
+ end
31
+
32
+ benchmark("Array.new", nil, @count) do |array|
33
+ Array.new
34
+ end
@@ -0,0 +1,25 @@
1
+ @count = 1_000_000
2
+
3
+ hash = {'a' => 1}
4
+
5
+ benchmark("hash['a']", nil, @count) do |array|
6
+ hash['a']
7
+ end
8
+
9
+ hash = {:a => 1}
10
+
11
+ benchmark("hash[:a]", nil, @count) do |array|
12
+ hash[:a]
13
+ end
14
+
15
+ hash = {:a => 9**10000}
16
+
17
+ benchmark("if hash[:a]", nil, @count) do |array|
18
+ if hash[:a]
19
+ end
20
+ end
21
+
22
+ benchmark("if hash.has_key? :a", nil, @count) do |array|
23
+ if hash.has_key? :a
24
+ end
25
+ end
@@ -0,0 +1,58 @@
1
+ @count = 10_000_000
2
+
3
+ benchmark("@a ||= 1", nil, @count) do
4
+ @a ||= 1
5
+ end
6
+
7
+ benchmark("@a = @a || 1", nil, @count) do
8
+ @a = @a || 1
9
+ end
10
+
11
+ benchmark("@a || @a = 1", nil, @count) do
12
+ @a || @a = 1
13
+ end
14
+
15
+ benchmark("unless true", nil, @count) do
16
+ unless true
17
+ end
18
+ end
19
+
20
+ benchmark("unless false", nil, @count) do
21
+ unless false
22
+ end
23
+ end
24
+
25
+ benchmark("if false", nil, @count) do
26
+ unless true
27
+ end
28
+ end
29
+
30
+ benchmark("if true", nil, @count) do
31
+ unless false
32
+ end
33
+ end
34
+
35
+ benchmark("not true", nil, @count) do
36
+ not true
37
+ end
38
+
39
+ benchmark("!true", nil, @count) do
40
+ !true
41
+ end
42
+
43
+ x = 0
44
+ benchmark("x += 1", nil, @count) do
45
+ x += 1
46
+ end
47
+
48
+ benchmark("x = x + 1", nil, @count) do
49
+ x = x + 1
50
+ end
51
+
52
+ benchmark("x = 1; z = 2", nil, @count) do
53
+ x = 1; z = 2
54
+ end
55
+
56
+ benchmark("x,z = 1,2", nil, @count) do
57
+ x,z = 1,2
58
+ end
@@ -0,0 +1,75 @@
1
+ @count = 100_000
2
+
3
+ benchmark('"big string"', nil, @count) do |string|
4
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus mollis faucibus tortor, eu dignissim mi molestie porta. Duis id vulputate neque. Aliquam arcu tellus, posuere quis convallis et, cursus ut justo. Praesent euismod congue congue. Mauris cursus eleifend ullamcorper. Nullam eu libero sit amet diam elementum ultrices consequat nec nulla. Nam pellentesque lorem eleifend neque dapibus tempus. Integer et turpis nec justo suscipit interdum et eu neque.
5
+
6
+ Curabitur viverra interdum tortor, eget pharetra neque malesuada id. Quisque sapien mauris, scelerisque in rutrum eu, tempor ut odio. Cras feugiat malesuada lacinia. Sed dictum ligula eget magna ullamcorper consequat. Etiam odio augue, blandit in commodo in, commodo ut neque. Curabitur fringilla convallis metus, in feugiat dolor euismod pellentesque. Sed ultrices adipiscing fringilla. Proin tempor nisl a felis vulputate ac ultricies lacus dignissim. In hac habitasse platea dictumst. Etiam nec lacus orci. Aliquam ac quam non lorem congue sodales ut vitae orci.
7
+
8
+ Praesent in tincidunt justo. Integer vel justo nunc. Aliquam quis sem enim. Praesent elementum, augue quis tristique ultrices, est augue vehicula enim, vitae consequat odio neque vitae nibh. Nunc vitae convallis dui. Morbi sit amet blandit diam. Nunc sit amet accumsan quam. In dapibus lectus bibendum metus vulputate porttitor. Praesent commodo fringilla eros, in pulvinar arcu varius nec.
9
+
10
+ Pellentesque quis nisi quis est vehicula rutrum imperdiet faucibus dolor. Nulla in enim lectus. Fusce vitae sem ut est eleifend euismod. Donec vitae nunc a ipsum vestibulum laoreet. Cras ultrices convallis nisl fringilla vulputate. Donec nec odio neque. Sed enim tellus, feugiat id condimentum vitae, iaculis sed dolor. Aliquam erat volutpat. Ut et nisl odio, ut varius ante. Praesent id arcu vel nibh tincidunt rhoncus. Etiam auctor lacus sit amet tortor posuere vitae cursus enim aliquet. Aliquam lobortis, est ut sollicitudin mollis, enim ante consectetur metus, eget aliquam dui justo in nisi.
11
+
12
+ Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam purus massa, dapibus vitae molestie eu, adipiscing sed lacus. Praesent condimentum sem vitae nisl ornare cursus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eget nisi non lorem imperdiet ultrices. Proin at diam nunc. Morbi pharetra aliquam hendrerit. Duis convallis fermentum scelerisque. Nulla facilisi."
13
+ end
14
+
15
+ benchmark("'big string'", nil, @count) do |string|
16
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus mollis faucibus tortor, eu dignissim mi molestie porta. Duis id vulputate neque. Aliquam arcu tellus, posuere quis convallis et, cursus ut justo. Praesent euismod congue congue. Mauris cursus eleifend ullamcorper. Nullam eu libero sit amet diam elementum ultrices consequat nec nulla. Nam pellentesque lorem eleifend neque dapibus tempus. Integer et turpis nec justo suscipit interdum et eu neque.
17
+
18
+ Curabitur viverra interdum tortor, eget pharetra neque malesuada id. Quisque sapien mauris, scelerisque in rutrum eu, tempor ut odio. Cras feugiat malesuada lacinia. Sed dictum ligula eget magna ullamcorper consequat. Etiam odio augue, blandit in commodo in, commodo ut neque. Curabitur fringilla convallis metus, in feugiat dolor euismod pellentesque. Sed ultrices adipiscing fringilla. Proin tempor nisl a felis vulputate ac ultricies lacus dignissim. In hac habitasse platea dictumst. Etiam nec lacus orci. Aliquam ac quam non lorem congue sodales ut vitae orci.
19
+
20
+ Praesent in tincidunt justo. Integer vel justo nunc. Aliquam quis sem enim. Praesent elementum, augue quis tristique ultrices, est augue vehicula enim, vitae consequat odio neque vitae nibh. Nunc vitae convallis dui. Morbi sit amet blandit diam. Nunc sit amet accumsan quam. In dapibus lectus bibendum metus vulputate porttitor. Praesent commodo fringilla eros, in pulvinar arcu varius nec.
21
+
22
+ Pellentesque quis nisi quis est vehicula rutrum imperdiet faucibus dolor. Nulla in enim lectus. Fusce vitae sem ut est eleifend euismod. Donec vitae nunc a ipsum vestibulum laoreet. Cras ultrices convallis nisl fringilla vulputate. Donec nec odio neque. Sed enim tellus, feugiat id condimentum vitae, iaculis sed dolor. Aliquam erat volutpat. Ut et nisl odio, ut varius ante. Praesent id arcu vel nibh tincidunt rhoncus. Etiam auctor lacus sit amet tortor posuere vitae cursus enim aliquet. Aliquam lobortis, est ut sollicitudin mollis, enim ante consectetur metus, eget aliquam dui justo in nisi.
23
+
24
+ Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam purus massa, dapibus vitae molestie eu, adipiscing sed lacus. Praesent condimentum sem vitae nisl ornare cursus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eget nisi non lorem imperdiet ultrices. Proin at diam nunc. Morbi pharetra aliquam hendrerit. Duis convallis fermentum scelerisque. Nulla facilisi.'
25
+ end
26
+
27
+ benchmark("'big string' + 'big string'", nil, @count) do |string|
28
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus mollis faucibus tortor, eu dignissim mi molestie porta. Duis id vulputate neque. Aliquam arcu tellus, posuere quis convallis et, cursus ut justo. Praesent euismod congue congue. Mauris cursus eleifend ullamcorper. Nullam eu libero sit amet diam elementum ultrices consequat nec nulla. Nam pellentesque lorem eleifend neque dapibus tempus. Integer et turpis nec justo suscipit interdum et eu neque.
29
+
30
+ Curabitur viverra interdum tortor, eget pharetra neque malesuada id. Quisque sapien mauris, scelerisque in rutrum eu, tempor ut odio. Cras feugiat malesuada lacinia. Sed dictum ligula eget magna ullamcorper consequat. Etiam odio augue, blandit in commodo in, commodo ut neque. Curabitur fringilla convallis metus, in feugiat dolor euismod pellentesque. Sed ultrices adipiscing fringilla. Proin tempor nisl a felis vulputate ac ultricies lacus dignissim. In hac habitasse platea dictumst. Etiam nec lacus orci. Aliquam ac quam non lorem congue sodales ut vitae orci.
31
+
32
+ Praesent in tincidunt justo. Integer vel justo nunc. Aliquam quis sem enim. Praesent elementum, augue quis tristique ultrices, est augue vehicula enim, vitae consequat odio neque vitae nibh. Nunc vitae convallis dui. Morbi sit amet blandit diam. Nunc sit amet accumsan quam. In dapibus lectus bibendum metus vulputate porttitor. Praesent commodo fringilla eros, in pulvinar arcu varius nec.
33
+
34
+ Pellentesque quis nisi quis est vehicula rutrum imperdiet faucibus dolor. Nulla in enim lectus. Fusce vitae sem ut est eleifend euismod. Donec vitae nunc a ipsum vestibulum laoreet. Cras ultrices convallis nisl fringilla vulputate. Donec nec odio neque. Sed enim tellus, feugiat id condimentum vitae, iaculis sed dolor. Aliquam erat volutpat. Ut et nisl odio, ut varius ante. Praesent id arcu vel nibh tincidunt rhoncus. Etiam auctor lacus sit amet tortor posuere vitae cursus enim aliquet. Aliquam lobortis, est ut sollicitudin mollis, enim ante consectetur metus, eget aliquam dui justo in nisi.
35
+
36
+ Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam purus massa, dapibus vitae molestie eu, adipiscing sed lacus. Praesent condimentum sem vitae nisl ornare cursus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eget nisi non lorem imperdiet ultrices. Proin at diam nunc. Morbi pharetra aliquam hendrerit. Duis convallis fermentum scelerisque. Nulla facilisi.' + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus mollis faucibus tortor, eu dignissim mi molestie porta. Duis id vulputate neque. Aliquam arcu tellus, posuere quis convallis et, cursus ut justo. Praesent euismod congue congue. Mauris cursus eleifend ullamcorper. Nullam eu libero sit amet diam elementum ultrices consequat nec nulla. Nam pellentesque lorem eleifend neque dapibus tempus. Integer et turpis nec justo suscipit interdum et eu neque.
37
+
38
+ Curabitur viverra interdum tortor, eget pharetra neque malesuada id. Quisque sapien mauris, scelerisque in rutrum eu, tempor ut odio. Cras feugiat malesuada lacinia. Sed dictum ligula eget magna ullamcorper consequat. Etiam odio augue, blandit in commodo in, commodo ut neque. Curabitur fringilla convallis metus, in feugiat dolor euismod pellentesque. Sed ultrices adipiscing fringilla. Proin tempor nisl a felis vulputate ac ultricies lacus dignissim. In hac habitasse platea dictumst. Etiam nec lacus orci. Aliquam ac quam non lorem congue sodales ut vitae orci.
39
+
40
+ Praesent in tincidunt justo. Integer vel justo nunc. Aliquam quis sem enim. Praesent elementum, augue quis tristique ultrices, est augue vehicula enim, vitae consequat odio neque vitae nibh. Nunc vitae convallis dui. Morbi sit amet blandit diam. Nunc sit amet accumsan quam. In dapibus lectus bibendum metus vulputate porttitor. Praesent commodo fringilla eros, in pulvinar arcu varius nec.
41
+
42
+ Pellentesque quis nisi quis est vehicula rutrum imperdiet faucibus dolor. Nulla in enim lectus. Fusce vitae sem ut est eleifend euismod. Donec vitae nunc a ipsum vestibulum laoreet. Cras ultrices convallis nisl fringilla vulputate. Donec nec odio neque. Sed enim tellus, feugiat id condimentum vitae, iaculis sed dolor. Aliquam erat volutpat. Ut et nisl odio, ut varius ante. Praesent id arcu vel nibh tincidunt rhoncus. Etiam auctor lacus sit amet tortor posuere vitae cursus enim aliquet. Aliquam lobortis, est ut sollicitudin mollis, enim ante consectetur metus, eget aliquam dui justo in nisi.
43
+
44
+ Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam purus massa, dapibus vitae molestie eu, adipiscing sed lacus. Praesent condimentum sem vitae nisl ornare cursus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eget nisi non lorem imperdiet ultrices. Proin at diam nunc. Morbi pharetra aliquam hendrerit. Duis convallis fermentum scelerisque. Nulla facilisi.'
45
+ end
46
+
47
+ benchmark("'big string' << 'big string'", nil, @count) do |string|
48
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus mollis faucibus tortor, eu dignissim mi molestie porta. Duis id vulputate neque. Aliquam arcu tellus, posuere quis convallis et, cursus ut justo. Praesent euismod congue congue. Mauris cursus eleifend ullamcorper. Nullam eu libero sit amet diam elementum ultrices consequat nec nulla. Nam pellentesque lorem eleifend neque dapibus tempus. Integer et turpis nec justo suscipit interdum et eu neque.
49
+
50
+ Curabitur viverra interdum tortor, eget pharetra neque malesuada id. Quisque sapien mauris, scelerisque in rutrum eu, tempor ut odio. Cras feugiat malesuada lacinia. Sed dictum ligula eget magna ullamcorper consequat. Etiam odio augue, blandit in commodo in, commodo ut neque. Curabitur fringilla convallis metus, in feugiat dolor euismod pellentesque. Sed ultrices adipiscing fringilla. Proin tempor nisl a felis vulputate ac ultricies lacus dignissim. In hac habitasse platea dictumst. Etiam nec lacus orci. Aliquam ac quam non lorem congue sodales ut vitae orci.
51
+
52
+ Praesent in tincidunt justo. Integer vel justo nunc. Aliquam quis sem enim. Praesent elementum, augue quis tristique ultrices, est augue vehicula enim, vitae consequat odio neque vitae nibh. Nunc vitae convallis dui. Morbi sit amet blandit diam. Nunc sit amet accumsan quam. In dapibus lectus bibendum metus vulputate porttitor. Praesent commodo fringilla eros, in pulvinar arcu varius nec.
53
+
54
+ Pellentesque quis nisi quis est vehicula rutrum imperdiet faucibus dolor. Nulla in enim lectus. Fusce vitae sem ut est eleifend euismod. Donec vitae nunc a ipsum vestibulum laoreet. Cras ultrices convallis nisl fringilla vulputate. Donec nec odio neque. Sed enim tellus, feugiat id condimentum vitae, iaculis sed dolor. Aliquam erat volutpat. Ut et nisl odio, ut varius ante. Praesent id arcu vel nibh tincidunt rhoncus. Etiam auctor lacus sit amet tortor posuere vitae cursus enim aliquet. Aliquam lobortis, est ut sollicitudin mollis, enim ante consectetur metus, eget aliquam dui justo in nisi.
55
+
56
+ Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam purus massa, dapibus vitae molestie eu, adipiscing sed lacus. Praesent condimentum sem vitae nisl ornare cursus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eget nisi non lorem imperdiet ultrices. Proin at diam nunc. Morbi pharetra aliquam hendrerit. Duis convallis fermentum scelerisque. Nulla facilisi.' << 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus mollis faucibus tortor, eu dignissim mi molestie porta. Duis id vulputate neque. Aliquam arcu tellus, posuere quis convallis et, cursus ut justo. Praesent euismod congue congue. Mauris cursus eleifend ullamcorper. Nullam eu libero sit amet diam elementum ultrices consequat nec nulla. Nam pellentesque lorem eleifend neque dapibus tempus. Integer et turpis nec justo suscipit interdum et eu neque.
57
+
58
+ Curabitur viverra interdum tortor, eget pharetra neque malesuada id. Quisque sapien mauris, scelerisque in rutrum eu, tempor ut odio. Cras feugiat malesuada lacinia. Sed dictum ligula eget magna ullamcorper consequat. Etiam odio augue, blandit in commodo in, commodo ut neque. Curabitur fringilla convallis metus, in feugiat dolor euismod pellentesque. Sed ultrices adipiscing fringilla. Proin tempor nisl a felis vulputate ac ultricies lacus dignissim. In hac habitasse platea dictumst. Etiam nec lacus orci. Aliquam ac quam non lorem congue sodales ut vitae orci.
59
+
60
+ Praesent in tincidunt justo. Integer vel justo nunc. Aliquam quis sem enim. Praesent elementum, augue quis tristique ultrices, est augue vehicula enim, vitae consequat odio neque vitae nibh. Nunc vitae convallis dui. Morbi sit amet blandit diam. Nunc sit amet accumsan quam. In dapibus lectus bibendum metus vulputate porttitor. Praesent commodo fringilla eros, in pulvinar arcu varius nec.
61
+
62
+ Pellentesque quis nisi quis est vehicula rutrum imperdiet faucibus dolor. Nulla in enim lectus. Fusce vitae sem ut est eleifend euismod. Donec vitae nunc a ipsum vestibulum laoreet. Cras ultrices convallis nisl fringilla vulputate. Donec nec odio neque. Sed enim tellus, feugiat id condimentum vitae, iaculis sed dolor. Aliquam erat volutpat. Ut et nisl odio, ut varius ante. Praesent id arcu vel nibh tincidunt rhoncus. Etiam auctor lacus sit amet tortor posuere vitae cursus enim aliquet. Aliquam lobortis, est ut sollicitudin mollis, enim ante consectetur metus, eget aliquam dui justo in nisi.
63
+
64
+ Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam purus massa, dapibus vitae molestie eu, adipiscing sed lacus. Praesent condimentum sem vitae nisl ornare cursus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eget nisi non lorem imperdiet ultrices. Proin at diam nunc. Morbi pharetra aliquam hendrerit. Duis convallis fermentum scelerisque. Nulla facilisi.'
65
+ end
66
+
67
+ a = '1' * 100
68
+ c = '2' * 100
69
+ benchmark("'string ' << a << ' ' << c", nil, @count) do |string|
70
+ 'string ' << a << ' ' << c
71
+ end
72
+
73
+ benchmark('"string #{a} #{c}"', nil, @count) do |string|
74
+ "string #{a} #{c}"
75
+ end
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.expand_path(File.dirname(__FILE__)) + '/../lib/ruby_micro_benchmarks'
4
+ head
5
+ run_benchmarks
@@ -0,0 +1,37 @@
1
+ require 'benchmark'
2
+
3
+ def head
4
+ $stderr.puts RUBY_DESCRIPTION
5
+ $stderr.printf "%-35s user system total real\n", ''
6
+ end
7
+
8
+ def run_benchmarks
9
+ Dir[File.expand_path("#{File.dirname(__FILE__)}/../benchmarks/*.rb")].each {|f| require f }
10
+ end
11
+
12
+ def run_benchmark(file)
13
+ require file
14
+ end
15
+
16
+ def benchmark(title, input_data = nil, count = 1, &block)
17
+ input_data.is_a?(Array) ? benchmark_cycle(title, input_data, count, &block) : measure(title, input_data, count, &block)
18
+ end
19
+
20
+ def benchmark_cycle(title, input_data_sizes = [1], count = 1, &block)
21
+ input_data_sizes.each do |size|
22
+ input_data = generate_input_data(size)
23
+ measure(title, input_data, count, &block)
24
+ end
25
+ end
26
+
27
+ def measure(title, input_data, count, &block)
28
+ input_string = input_data ? " (#{input_data.size}):" : ''
29
+ $stderr.printf "%-30s ", title + input_string
30
+ $stderr.puts Benchmark.measure {
31
+ count.times { block.call(input_data) }
32
+ }.to_s
33
+ end
34
+
35
+ def generate_input_data(size)
36
+ Array.new(size) { rand(100000) }
37
+ end
metadata ADDED
@@ -0,0 +1,51 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_micro_benchmarks
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Dmitry Plashchynski
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-20 00:00:00.000000000Z
13
+ dependencies: []
14
+ description: A set of Ruby benchmarks for testing several Ruby methods and practice.
15
+ email: plashchynski@gmail.com
16
+ executables:
17
+ - ruby_micro_benchmarks
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/ruby_micro_benchmarks.rb
22
+ - benchmarks/array.rb
23
+ - benchmarks/hash.rb
24
+ - benchmarks/operators.rb
25
+ - benchmarks/string.rb
26
+ - bin/ruby_micro_benchmarks
27
+ homepage: http://github.com/plashchynski/ruby-micro-benchmarks
28
+ licenses: []
29
+ post_install_message:
30
+ rdoc_options: []
31
+ require_paths:
32
+ - lib
33
+ required_ruby_version: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ required_rubygems_version: !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ requirements: []
46
+ rubyforge_project:
47
+ rubygems_version: 1.8.11
48
+ signing_key:
49
+ specification_version: 3
50
+ summary: Ruby micro benchmarks
51
+ test_files: []