diff options
author | svn <svn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-02 17:36:57 +0000 |
---|---|---|
committer | svn <svn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-02 17:36:57 +0000 |
commit | 055a465ac4222f314917c1d682fbd9d0d73535af (patch) | |
tree | 9a91e116c40408ed2b208a45498486edba1aa451 /sample/simple-bench.rb | |
parent | 16377c36b9ca280407d80948fbc904ed15179441 (diff) | |
download | ruby-055a465ac4222f314917c1d682fbd9d0d73535af.tar.gz |
* properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sample/simple-bench.rb')
-rw-r--r-- | sample/simple-bench.rb | 280 |
1 files changed, 140 insertions, 140 deletions
diff --git a/sample/simple-bench.rb b/sample/simple-bench.rb index f3a5380b1d..607fdbf6e9 100644 --- a/sample/simple-bench.rb +++ b/sample/simple-bench.rb @@ -1,140 +1,140 @@ -require 'benchmark'
-
-def foo0
-end
-def foo3 a, b, c
-end
-def foo6 a, b, c, d, e, f
-end
-
-def iter0
- yield
-end
-
-def iter1
- yield 1
-end
-
-def iter3
- yield 1, 2, 3
-end
-
-def iter6
- yield 1, 2, 3, 4, 5, 6
-end
-
-(1..6).each{|i|
- kws = (1..i).map{|e| "k#{e}: #{e}"}
- eval %Q{
- def foo_kw#{i}(#{kws.join(', ')})
- end
- }
-
- kws = (1..i).map{|e| "k#{e}:"}
- eval %Q{
- def foo_required_kw#{i}(#{kws.join(', ')})
- end
- }
-}
-
-(1..6).each{|i|
- kws = (1..i).map{|e| "k#{e}: #{e} + 1"}
- eval %Q{
- def foo_complex_kw#{i}(#{kws.join(', ')})
- end
- }
-}
-
-(1..6).each{|i|
- kws = (1..i).map{|e| "k#{e}: #{e}"}
- eval %Q{
- def iter_kw#{i}
- yield #{kws.join(', ')}
- end
- }
-}
-
-ary1 = [1]
-ary2 = [[1, 2, 3, 4, 5]]
-
-test_methods = %Q{
- # empty 1
- # empty 2
- foo0
- foo3 1, 2, 3
- foo6 1, 2, 3, 4, 5, 6
- foo_kw1
- foo_kw2
- foo_kw3
- foo_kw4
- foo_kw5
- foo_kw6
- foo_kw6 k1: 1
- foo_kw6 k1: 1, k2: 2
- foo_kw6 k1: 1, k2: 2, k3: 3
- foo_kw6 k1: 1, k2: 2, k3: 3, k4: 4
- foo_kw6 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5
- foo_kw6 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5, k6: 6
- foo_required_kw1 k1: 1
- foo_required_kw2 k1: 1, k2: 2
- foo_required_kw3 k1: 1, k2: 2, k3: 3
- foo_required_kw4 k1: 1, k2: 2, k3: 3, k4: 4
- foo_required_kw5 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5
- foo_required_kw6 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5, k6: 6
- foo_complex_kw1
- foo_complex_kw2
- foo_complex_kw3
- foo_complex_kw4
- foo_complex_kw5
- foo_complex_kw6
- foo_complex_kw6 k1: 1
- foo_complex_kw6 k1: 1, k2: 2
- foo_complex_kw6 k1: 1, k2: 2, k3: 3
- foo_complex_kw6 k1: 1, k2: 2, k3: 3, k4: 4
- foo_complex_kw6 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5
- foo_complex_kw6 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5, k6: 6
- iter0{}
- iter1{}
- iter1{|a|}
- iter3{}
- iter3{|a|}
- iter3{|a, b, c|}
- iter6{}
- iter6{|a|}
- iter6{|a, b, c, d, e, f, g|}
- iter0{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|}
- iter_kw1{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|}
- iter_kw2{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|}
- iter_kw3{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|}
- iter_kw4{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|}
- iter_kw5{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|}
- iter_kw6{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|}
- ary1.each{|e|}
- ary1.each{|e,|}
- ary1.each{|a, b, c, d, e|}
- ary2.each{|e|}
- ary2.each{|e,|}
- ary2.each{|a, b, c, d, e|}
-}
-
-N = 10_000_000
-
-max_line = test_methods.each_line.max_by{|line| line.strip.size}
-max_size = max_line.strip.size
-
-Benchmark.bm(max_size){|x|
-
- str = test_methods.each_line.map{|line| line.strip!
- next if line.empty?
- %Q{
- x.report(#{line.dump}){
- i = 0
- while i<#{N}
- #{line}
- i+=1
- end
- }
- }
- }.join("\n")
- eval str
-}
+require 'benchmark' + +def foo0 +end +def foo3 a, b, c +end +def foo6 a, b, c, d, e, f +end + +def iter0 + yield +end + +def iter1 + yield 1 +end + +def iter3 + yield 1, 2, 3 +end + +def iter6 + yield 1, 2, 3, 4, 5, 6 +end + +(1..6).each{|i| + kws = (1..i).map{|e| "k#{e}: #{e}"} + eval %Q{ + def foo_kw#{i}(#{kws.join(', ')}) + end + } + + kws = (1..i).map{|e| "k#{e}:"} + eval %Q{ + def foo_required_kw#{i}(#{kws.join(', ')}) + end + } +} + +(1..6).each{|i| + kws = (1..i).map{|e| "k#{e}: #{e} + 1"} + eval %Q{ + def foo_complex_kw#{i}(#{kws.join(', ')}) + end + } +} + +(1..6).each{|i| + kws = (1..i).map{|e| "k#{e}: #{e}"} + eval %Q{ + def iter_kw#{i} + yield #{kws.join(', ')} + end + } +} + +ary1 = [1] +ary2 = [[1, 2, 3, 4, 5]] + +test_methods = %Q{ + # empty 1 + # empty 2 + foo0 + foo3 1, 2, 3 + foo6 1, 2, 3, 4, 5, 6 + foo_kw1 + foo_kw2 + foo_kw3 + foo_kw4 + foo_kw5 + foo_kw6 + foo_kw6 k1: 1 + foo_kw6 k1: 1, k2: 2 + foo_kw6 k1: 1, k2: 2, k3: 3 + foo_kw6 k1: 1, k2: 2, k3: 3, k4: 4 + foo_kw6 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5 + foo_kw6 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5, k6: 6 + foo_required_kw1 k1: 1 + foo_required_kw2 k1: 1, k2: 2 + foo_required_kw3 k1: 1, k2: 2, k3: 3 + foo_required_kw4 k1: 1, k2: 2, k3: 3, k4: 4 + foo_required_kw5 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5 + foo_required_kw6 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5, k6: 6 + foo_complex_kw1 + foo_complex_kw2 + foo_complex_kw3 + foo_complex_kw4 + foo_complex_kw5 + foo_complex_kw6 + foo_complex_kw6 k1: 1 + foo_complex_kw6 k1: 1, k2: 2 + foo_complex_kw6 k1: 1, k2: 2, k3: 3 + foo_complex_kw6 k1: 1, k2: 2, k3: 3, k4: 4 + foo_complex_kw6 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5 + foo_complex_kw6 k1: 1, k2: 2, k3: 3, k4: 4, k5: 5, k6: 6 + iter0{} + iter1{} + iter1{|a|} + iter3{} + iter3{|a|} + iter3{|a, b, c|} + iter6{} + iter6{|a|} + iter6{|a, b, c, d, e, f, g|} + iter0{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|} + iter_kw1{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|} + iter_kw2{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|} + iter_kw3{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|} + iter_kw4{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|} + iter_kw5{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|} + iter_kw6{|k1: nil, k2: nil, k3: nil, k4: nil, k5: nil, k6: nil|} + ary1.each{|e|} + ary1.each{|e,|} + ary1.each{|a, b, c, d, e|} + ary2.each{|e|} + ary2.each{|e,|} + ary2.each{|a, b, c, d, e|} +} + +N = 10_000_000 + +max_line = test_methods.each_line.max_by{|line| line.strip.size} +max_size = max_line.strip.size + +Benchmark.bm(max_size){|x| + + str = test_methods.each_line.map{|line| line.strip! + next if line.empty? + %Q{ + x.report(#{line.dump}){ + i = 0 + while i<#{N} + #{line} + i+=1 + end + } + } + }.join("\n") + eval str +} |