diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-10-16 13:26:46 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-10-16 13:26:46 +0000 |
commit | f8c2a968dd3628dc0a5f3b671bd41a08104ce466 (patch) | |
tree | 0ae933ff0f60c08ff94556acfc7348169e74379e | |
parent | 64b1751194754a20173bbf48cff2035078bc225f (diff) |
* benchmark/driver.rb (show_results): Show speedup ratio
with first executables score at last of results
if two or more executrables are given.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | benchmark/driver.rb | 63 |
2 files changed, 51 insertions, 18 deletions
@@ -1,3 +1,9 @@ +Tue Oct 16 22:24:44 2012 Koichi Sasada <ko1@atdot.net> + + * benchmark/driver.rb (show_results): Show speedup ratio + with first executables score at last of results + if two or more executrables are given. + Tue Oct 16 21:59:01 2012 Koichi Sasada <ko1@atdot.net> * benchmark/driver.rb: some refactoring. diff --git a/benchmark/driver.rb b/benchmark/driver.rb index 7cd2714ab4..cea5d55b28 100644 --- a/benchmark/driver.rb +++ b/benchmark/driver.rb @@ -90,8 +90,27 @@ class BenchmarkDriver end end - def average results - results.inject(:+) / results.length + def adjusted_results name, results + s = nil + results.each_with_index{|e, i| + r = e.min + case name + when /^vm1_/ + if @loop_wl1 + r -= @loop_wl1[i] + r = 0 if r < 0 + s = '*' + end + when /^vm2_/ + if @loop_wl2 + r -= @loop_wl2[i] + r = 0 if r < 0 + s = '*' + end + end + yield r + } + s end def show_results @@ -113,30 +132,38 @@ class BenchmarkDriver output "minimum results in each #{@repeat} measurements." end + output "Execution time (sec)" output "name\t#{@execs.map{|(_, v)| v}.join("\t")}" @results.each{|v, result| rets = [] - s = nil - result.each_with_index{|e, i| - r = e.min - case v - when /^vm1_/ - if @loop_wl1 - r -= @loop_wl1[i] - s = '*' - end - when /^vm2_/ - if @loop_wl2 - r -= @loop_wl2[i] - s = '*' - end - end + s = adjusted_results(v, result){|r| rets << sprintf("%.3f", r) } - output "#{v}#{s}\t#{rets.join("\t")}" } + if @execs.size > 1 + output + output "Speedup ratio comare with the result of `#{@execs[0]}' (greater is better)" + output "name\t#{@execs[1..-1].map{|(_, v)| v}.join("\t")}" + @results.each{|v, result| + rets = [] + first_value = nil + s = adjusted_results(v, result){|r| + if first_value + if r == 0 + rets << sprintf("%.3f", "Error") + else + rets << sprintf("%.3f", first_value/r) + end + else + first_value = r + end + } + output "#{v}#{s}\t#{rets.join("\t")}" + } + end + if @opt[:output] output output "Log file: #{@opt[:output]}" |