Internal perf dashboard takes forever to load
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Nov 2015 04:48:42 +0000 (04:48 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Nov 2015 04:48:42 +0000 (04:48 +0000)
https://bugs.webkit.org/show_bug.cgi?id=151430

Rubber-stamped by Antti Koivisto.

Fix a few performance problems with the perf dashboard v2 UI.

* public/v2/app.js:
(App.DashboardRow._createPane): Set "inDashboard" to true.
(App.Pane._fetch): Immediately show the cached chart instead of waiting for the refetched data which invokes
a PHP JSON API. Also don't fetch the analysis tasks when the chart is shown in the dashboard since we don't
show annotate charts in the dashboard.

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

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

index 72be595..e99f67d 100644 (file)
@@ -1,3 +1,18 @@
+2015-11-18  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Internal perf dashboard takes forever to load
+        https://bugs.webkit.org/show_bug.cgi?id=151430
+
+        Rubber-stamped by Antti Koivisto.
+
+        Fix a few performance problems with the perf dashboard v2 UI.
+
+        * public/v2/app.js:
+        (App.DashboardRow._createPane): Set "inDashboard" to true.
+        (App.Pane._fetch): Immediately show the cached chart instead of waiting for the refetched data which invokes
+        a PHP JSON API. Also don't fetch the analysis tasks when the chart is shown in the dashboard since we don't
+        show annotate charts in the dashboard.
+
 2015-10-15  Ryosuke Niwa  <rniwa@webkit.org>
 
         Unreviewed fix of a test after r190687.
index 9970690..60b620d 100644 (file)
@@ -38,6 +38,7 @@ App.DashboardRow = Ember.Object.extend({
             store: this.get('store'),
             platformId: paneInfo ? paneInfo[0] : null,
             metricId: paneInfo ? paneInfo[1] : null,
+            inDashboard: true
         });
 
         return App.DashboardPaneProxyForPicker.create({content: pane});
@@ -300,6 +301,7 @@ App.Pane = Ember.Object.extend({
     selectedPoints: null,
     hoveredOrSelectedItem: null,
     showFullYAxis: false,
+    inDashboard: false,
     searchCommit: function (repository, keyword) {
         var self = this;
         var repositoryId = repository.get('id');
@@ -355,10 +357,11 @@ App.Pane = Ember.Object.extend({
                 .then(function (result) {
                     if (result || result.shouldRefetch)
                         self.refetchRuns(platformId, metricId);
-                    else
+                    if (result)
                         self._didFetchRuns(result);
                 }, this._handleFetchErrors.bind(this, platformId, metricId));
-            this.fetchAnalyticRanges();
+            if (!this.get('inDashboard'))
+                this.fetchAnalyticRanges();
         }
     }.observes('platformId', 'metricId').on('init'),
     refetchRuns: function (platformId, metricId) {