Changeset 183685 in webkit


Ignore:
Timestamp:
May 1, 2015 12:42:35 PM (9 years ago)
Author:
commit-queue@webkit.org
Message:

Update speedometer patch to provide better UI, fix merge result bug and add "Score" metric to speedometer benchmark.
https://bugs.webkit.org/show_bug.cgi?id=144487

Patch by Dewei Zhu <Dewei Zhu> on 2015-05-01
Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.merge): Fix bug.

  • Scripts/webkitpy/benchmark_runner/data/patches/Speedometer.patch: Update appearance and add "Score" metric.
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/PerformanceTests/Speedometer/resources/main.js

    r169540 r183685  
    5353            if (displayUnit == 'ms')
    5454                return time;
    55             return 60 * 1000 * suitesCount / time;
     55            return computerScore(time);
    5656        }
    5757
     
    159159}
    160160
     161function computeScore(time) {
     162    return 60 * 1000 * benchmarkClient.suitesCount / time;
     163}
     164
    161165function showSection(sectionIdentifier, pushState) {
    162166    var currentSectionElement = document.querySelector('section.selected');
  • trunk/Tools/ChangeLog

    r183682 r183685  
     12015-05-01  Dewei Zhu  <dewei_zhu@apple.com>
     2
     3        Update speedometer patch to provide better UI, fix merge result bug and add "Score" metric to speedometer benchmark.
     4        https://bugs.webkit.org/show_bug.cgi?id=144487
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        * Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
     9        (BenchmarkRunner.merge): Fix bug.
     10        * Scripts/webkitpy/benchmark_runner/data/patches/Speedometer.patch: Update appearance and add "Score" metric.
     11
    1122015-05-01  Brady Eidson  <beidson@apple.com>
    213
  • trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py

    r183621 r183685  
    9797        argType = type(a)
    9898        # special handle for list type, and should be handle before equal check
    99         if argType == types.ListType:
    100             return a + b
    101         if a == b:
     99        if argType == types.ListType and len(a) and (type(a[0]) == types.StringType or type(a[0]) == types.UnicodeType):
    102100            return a
    103101        if argType == types.DictType:
  • trunk/Tools/Scripts/webkitpy/benchmark_runner/data/patches/Speedometer.patch

    r183309 r183685  
    1212 <body>
    1313diff --git a/Speedometer/resources/benchmark-report.js b/Speedometer/resources/benchmark-report.js
    14 index c4b4c64..c4453cd 100644
     14index c4b4c64..874f597 100644
    1515--- a/Speedometer/resources/benchmark-report.js
    1616+++ b/Speedometer/resources/benchmark-report.js
    17 @@ -1,16 +1,9 @@
     17@@ -1,30 +1,26 @@
    1818 // This file can be customized to report results as needed.
    1919 
     
    2929-    document.head.appendChild(scriptElement);
    3030-
    31      var styleElement = document.createElement('style');
    32      styleElement.textContent = 'pre { padding-top: 600px; }';
    33      document.head.appendChild(styleElement);
    34 @@ -36,10 +29,8 @@
     31-    var styleElement = document.createElement('style');
     32-    styleElement.textContent = 'pre { padding-top: 600px; }';
     33-    document.head.appendChild(styleElement);
     34-
     35+    showSection('running')
     36     var createTest;
     37     var valuesByIteration = new Array;
     38+    var timeValues = new Array;
     39 
     40     window.onload = function () {
     41-        document.body.removeChild(document.querySelector('main'));
     42         startBenchmark();
     43     }
     44 
     45     window.benchmarkClient = {
     46         iterationCount: 5, // Use 4 different instances of DRT/WTR to run 5 iterations.
     47+        willAddTestFrame: function (frame) {
     48+            var main = document.querySelector('main');
     49+            var style = getComputedStyle(main);
     50+            frame.style.left = main.offsetLeft + parseInt(style.borderLeftWidth) + parseInt(style.paddingLeft) + 'px';
     51+            frame.style.top = main.offsetTop + parseInt(style.borderTopWidth) + parseInt(style.paddingTop) + 'px';
     52+        },
     53         willStartFirstIteration: function (iterationCount) {
     54             createTest = function (name, aggregator, isLastTest) {
     55                 return {
     56@@ -36,15 +32,12 @@
    3557                     name: name,
    3658                     aggregator: aggregator};
     
    4163-            PerfTestRunner.measureValueAsync(measuredValues.total);
    4264             valuesByIteration.push(measuredValues.tests);
     65+            timeValues.push(measuredValues.total);
    4366         },
    4467         didFinishLastIteration: function () {
    45 @@ -52,19 +43,30 @@
     68-            document.head.removeChild(document.querySelector('style'));
     69-
     70             var measuredValuesByFullName = {};
     71             function addToMeasuredValue(value, fullName, aggregator) {
     72                 var values = measuredValuesByFullName[fullName] || new Array;
     73@@ -52,19 +45,30 @@
    4674                 values.push(value);
    4775                 values.aggregator = aggregator;
     
    4977-
    5078+            var dict = {}
     79+            var scores= timeValues.map(computeScore);
    5180+            function addToDictionaryValue(value, suiteName, testName, subtestName) {
    52 +                dict["Speedometer"] = dict["Speedometer"] || { "metrics" : { "Time" : [ "Total", ] }, "tests" : {}};
     81+                dict["Speedometer"] = dict["Speedometer"] || { "metrics" : { "Time" : [ "Total", ], "Score": { "current" : [scores] } }, "tests" : {}};
    5382+                dict["Speedometer"]["tests"][suiteName] = dict["Speedometer"]["tests"][suiteName] || {"metrics" : { "Time" : [ "Total", ] }, "tests" : {}};
    5483+                dict["Speedometer"]["tests"][suiteName]["tests"][testName] = dict["Speedometer"]["tests"][suiteName]["tests"][testName] || { "metrics" : { "Time" : [ "Total", ] }, "tests" : {}};
     
    5685+                dict["Speedometer"]["tests"][suiteName]["tests"][testName]["tests"][subtestName]["metrics"]["Time"]["current"][0].push(value);
    5786+            }
    58 +           
    5987             valuesByIteration.forEach(function (measuredValues) {
    6088                 for (var suiteName in measuredValues) {
     
    76104             var fullNames = new Array;
    77105             for (var fullName in measuredValuesByFullName)
    78 @@ -72,8 +74,22 @@
     106@@ -72,8 +76,22 @@
    79107 
    80108             for (var i = 0; i < fullNames.length; i++) {
     
    84112+            var xhr = new XMLHttpRequest();
    85113+            xhr.open("POST", "/report");
    86 + 
     114+
    87115+            xhr.setRequestHeader("Content-type", "application/json");
    88116+            xhr.setRequestHeader("Content-length", results.length);
    89117+            xhr.setRequestHeader("Connection", "close");
    90 + 
     118+
    91119+            xhr.onreadystatechange = function() {
    92120+                if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
Note: See TracChangeset for help on using the changeset viewer.