ruby-changes:20382
From: drbrain <ko1@a...>
Date: Thu, 7 Jul 2011 06:48:08 +0900 (JST)
Subject: [ruby-changes:20382] drbrain:r32430 (trunk): * benchmark/driver.rb: Add difference column to report that averages
drbrain 2011-07-07 06:47:56 +0900 (Thu, 07 Jul 2011) New Revision: 32430 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=32430 Log: * benchmark/driver.rb: Add difference column to report that averages across all runs of a benchmark. [Ruby 1.9 - Feature #4982] Modified files: trunk/ChangeLog trunk/benchmark/driver.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 32429) +++ ChangeLog (revision 32430) @@ -1,3 +1,8 @@ +Thu Jul 7 06:46:12 2011 Eric Hodel <drbrain@s...> + + * benchmark/driver.rb: Add difference column to report that averages + across all runs of a benchmark. [Ruby 1.9 - Feature #4982] + Thu Jul 7 06:19:38 2011 Eric Hodel <drbrain@s...> * lib/rubygems.rb: Reduce requires to improve `make benchmark`. Index: benchmark/driver.rb =================================================================== --- benchmark/driver.rb (revision 32429) +++ benchmark/driver.rb (revision 32430) @@ -90,6 +90,10 @@ end end + def average results + results.inject(:+) / results.length + end + def show_results output @@ -109,7 +113,10 @@ output "minimum results in each #{@repeat} measurements." end - output "name\t#{@execs.map{|(e, v)| v}.join("\t")}" + difference = "\taverage difference" if @execs.length == 2 + total_difference = 0 + + output "name\t#{@execs.map{|(e, v)| v}.join("\t")}#{difference}" @results.each{|v, result| rets = [] s = nil @@ -129,8 +136,20 @@ end rets << sprintf("%.3f", r) } + + if difference + diff = average(result.last) - average(result.first) + total_difference += diff + rets << sprintf("%.3f", diff) + end + output "#{v}#{s}\t#{rets.join("\t")}" } + + if difference and @verbose + output '-----------------------------------------------------------' + output "average total difference is #{total_difference}" + end end def files -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/