REGRESSION: v2 UI reports a higher memory usage
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 19 May 2015 00:24:19 +0000 (00:24 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 19 May 2015 00:24:19 +0000 (00:24 +0000)
https://bugs.webkit.org/show_bug.cgi?id=145151

Reviewed by Chris Dumez.

The bug was caused by v2 UI using 1000 to divide the number of bytes instead of by 1024 as done in v1.
Fixed the bug by manually implementing the formatter as done in v1.

* public/v2/manifest.js:
(App.Manfiest._formatBytes): Added.
(App.Manifest._formatFetchedData): Use _formatByte instead of format('s').

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@184531 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/perf.webkit.org/ChangeLog
Websites/perf.webkit.org/public/v2/manifest.js

index 65c213664f239da1899e61b14a7e8a6992df6673..b9cd65bab0a22657cdf623e0c088e91ce41f391a 100644 (file)
@@ -1,3 +1,17 @@
+2015-05-18  Ryosuke Niwa  <rniwa@webkit.org>
+
+        REGRESSION: v2 UI reports a higher memory usage
+        https://bugs.webkit.org/show_bug.cgi?id=145151
+
+        Reviewed by Chris Dumez.
+
+        The bug was caused by v2 UI using 1000 to divide the number of bytes instead of by 1024 as done in v1.
+        Fixed the bug by manually implementing the formatter as done in v1.
+
+        * public/v2/manifest.js:
+        (App.Manfiest._formatBytes): Added.
+        (App.Manifest._formatFetchedData): Use _formatByte instead of format('s').
+
 2015-05-11  Ryosuke Niwa  <rniwa@webkit.org>
 
         Unreviewed build fix. Add "Duration" as a time metric.
index 610b607cacc7277945e610e69622d62a51738607..556f51ea6341272f8823e78aa523fb9b4ec063a7 100755 (executable)
@@ -315,14 +315,28 @@ App.Manifest = Ember.Controller.extend({
             };
         });
     },
+    _formatBytes: function (sigFig, alwaysShowSign)
+    {
+        var units = ['', 'K', 'M', 'G', 'T', 'P', 'E'];
+        var threshold = sigFig >= 3 ? 1024 : 102.4;
+        return function (bytes) {
+            var i;
+            var sign = bytes >= 0 ? (alwaysShowSign ? '+' : '') : '-';
+            bytes = Math.abs(bytes);
+
+            for (i = 0; bytes >= threshold; i++)
+                bytes /= 1024;
+            return sign + bytes.toPrecision(Math.max(2, sigFig)) + units[i];
+        }
+    },
     _formatFetchedData: function (metricName, configurations)
     {
         var unit = RunsData.unitFromMetricName(metricName);
         var smallerIsBetter = RunsData.isSmallerBetter(unit);
 
-        var useSI = unit == 'bytes';
+        var isBytes = unit == 'bytes';
         var unitSuffix = unit ? ' ' + unit : '';
-        var deltaFormatterWithoutSign = useSI ? d3.format('.2s') : d3.format('.2g');
+        var deltaFormatterWithoutSign = isBytes ? this._formatBytes(2, false) : d3.format('.2g');
 
         var currentTimeSeries = configurations.current.timeSeriesByCommitTime(false);
         var baselineTimeSeries = configurations.baseline ? configurations.baseline.timeSeriesByCommitTime(false) : null;
@@ -339,8 +353,8 @@ App.Manifest = Ember.Controller.extend({
             {
                 return this.formatter(value) + (delta && !isNaN(delta) ? ' \u00b1 ' + deltaFormatterWithoutSign(delta) : '') + unitSuffix;
             },
-            formatter: useSI ? d3.format('.4s') : d3.format('.4g'),
-            deltaFormatter: useSI ? d3.format('+.2s') : d3.format('+.2g'),
+            formatter: isBytes ? this._formatBytes(4, false) : d3.format('.4g'),
+            deltaFormatter: isBytes ? this._formatBytes(2, true) : d3.format('+.2g'),
             smallerIsBetter: smallerIsBetter,
             showOutlier: function (show)
             {