ruby-changes:25173
From: ko1 <ko1@a...>
Date: Tue, 16 Oct 2012 22:26:56 +0900 (JST)
Subject: [ruby-changes:25173] ko1:r37225 (trunk): * benchmark/driver.rb (show_results): Show speedup ratio
ko1 2012-10-16 22:26:46 +0900 (Tue, 16 Oct 2012) New Revision: 37225 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37225 Log: * benchmark/driver.rb (show_results): Show speedup ratio with first executables score at last of results if two or more executrables are given. Modified files: trunk/ChangeLog trunk/benchmark/driver.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 37224) +++ ChangeLog (revision 37225) @@ -1,3 +1,9 @@ +Tue Oct 16 22:24:44 2012 Koichi Sasada <ko1@a...> + + * 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@a...> * benchmark/driver.rb: some refactoring. Index: benchmark/driver.rb =================================================================== --- benchmark/driver.rb (revision 37224) +++ benchmark/driver.rb (revision 37225) @@ -90,8 +90,27 @@ 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 @@ 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]}" -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/