summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-16 13:26:46 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-16 13:26:46 +0000
commitf8c2a968dd3628dc0a5f3b671bd41a08104ce466 (patch)
tree0ae933ff0f60c08ff94556acfc7348169e74379e
parent64b1751194754a20173bbf48cff2035078bc225f (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--ChangeLog6
-rw-r--r--benchmark/driver.rb63
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 <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]}"