Move cursor to corner and fix safari window size before running benchmark
[WebKit-https.git] / Tools / Scripts / run-jsc-benchmarks
index 1747d05..d7e412c 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env ruby
 
-# Copyright (C) 2011, 2012, 2013, 2014 Apple Inc. All rights reserved.
+# Copyright (C) 2011-2015 Apple Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -1296,6 +1296,8 @@ class VM
       @libPath = [$~.pre_match + "/Contents/Resources", $~.pre_match + "/Contents/Frameworks"]
     elsif @path =~ /\/JavaScriptCore.framework\/Resources\/([a-zA-Z]+)$/
       @libPath, @relativeBinPath = [$~.pre_match], $&[1..-1]
+    elsif @path =~ /(DumpRenderTree|webkitTestRunner|jsc)$/
+      @libPath, @relativeBinPath = [$~.pre_match+"/"], "./#{$1}"
     end
   end
   
@@ -2469,7 +2471,7 @@ def parseAndDisplayResults(results)
     outp.puts createVMsString
   end
   
-  def summaryStats(outp, json, jsonKey, accumulators, name, decimalShift, &proc)
+  def summaryStats(outp, json, accumulators, name, decimalShift, &proc)
     resultingJson = {}
     outp.print "   " if $allSuites.size > 1
     outp.print rpad(name, $benchpad + $weightpad)
@@ -2486,31 +2488,14 @@ def parseAndDisplayResults(results)
       outp.print("    "+accumulators[-1].stats(&proc).compareTo(accumulators[0].stats(&proc)).longForm)
     end
     outp.puts
-    json[jsonKey] = resultingJson
+    json[name] = resultingJson
   end
-  
-  def meanName(currentMean, preferredMean)
-    result = "<#{currentMean}>"
-    if "#{currentMean}Mean" == preferredMean.to_s
-      result += " *"
-    end
-    result
-  end
-  
+
   def allSummaryStats(outp, json, accumulators, preferredMean, decimalShift)
-    summaryStats(outp, json, "<arithmetic>", accumulators, meanName("arithmetic", preferredMean), decimalShift) {
-      | stat |
-      stat.arithmeticMean
-    }
-    
-    summaryStats(outp, json, "<geometric>", accumulators, meanName("geometric", preferredMean), decimalShift) {
-      | stat |
-      stat.geometricMean
-    }
-    
-    summaryStats(outp, json, "<harmonic>", accumulators, meanName("harmonic", preferredMean), decimalShift) {
+    meanLabel = '<' + preferredMean.to_s.sub(/Mean$/, '') + '>'
+    summaryStats(outp, json, accumulators, meanLabel, decimalShift) {
       | stat |
-      stat.harmonicMean
+      stat.send(preferredMean)
     }
   end
   
@@ -2582,13 +2567,7 @@ def parseAndDisplayResults(results)
   }
   
   if $suites.size > 1
-    printVMs(outp)
-    outp.puts "All benchmarks:"
-    allSummaryStats(outp, json, vmStatses, nil, 0)
-    
     scaledResultJson = {}
-    
-    outp.puts
     printVMs(outp)
     outp.puts "Geomean of preferred means:"
     outp.print "   "
@@ -2864,7 +2843,7 @@ begin
   
   ARGV.each {
     | vm |
-    if vm =~ /([a-zA-Z0-9_ ]+):/
+    if vm =~ /([a-zA-Z0-9_ .]+):/
       name = $1
       nameKind = :given
       vm = $~.post_match
@@ -2873,7 +2852,7 @@ begin
       nameKind = :auto
     end
     envs = []
-    while vm =~ /([a-zA-Z0-9_]+)=([a-zA-Z0-9_:]+):/
+    while vm =~ /([a-zA-Z0-9_]+)=([a-zA-Z0-9_:.]+):/
       envs << [$1, $2]
       vm = $~.post_match
     end
@@ -2918,7 +2897,7 @@ begin
    "access-fannkuch", "access-nbody", "access-nsieve",
    "bitops-3bit-bits-in-byte", "bitops-bits-in-byte", "bitops-nsieve-bits",
    "controlflow-recursive", "crypto-aes", "crypto-md5", "crypto-sha1",
-   "date-format-tofte", "date-format-xparb", "math-cordic",
+   "date-format-tofte", "date-format-xparb", "hash-map", "math-cordic",
    "math-partial-sums", "math-spectral-norm", "string-base64",
    "string-fasta", "string-tagcloud"].each {
     | name |