From 055a465ac4222f314917c1d682fbd9d0d73535af Mon Sep 17 00:00:00 2001 From: svn Date: Sun, 2 Nov 2014 17:36:57 +0000 Subject: * properties. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- sample/simple-bench.rb | 280 ++++++++++++++++++++++++------------------------- 1 file 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 +} -- cgit v1.2.3