From f8c2a968dd3628dc0a5f3b671bd41a08104ce466 Mon Sep 17 00:00:00 2001 From: ko1 Date: Tue, 16 Oct 2012 13:26:46 +0000 Subject: * 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 --- ChangeLog | 6 +++++ benchmark/driver.rb | 63 ++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 51 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2346e6ed92..76860108c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Oct 16 22:24:44 2012 Koichi Sasada + + * 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 * 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]}" -- cgit v1.2.3