You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by jc...@apache.org on 2015/09/02 20:16:12 UTC

aurora git commit: Only process instances if there's been a change.

Repository: aurora
Updated Branches:
  refs/heads/master 64c00f105 -> d6b2c7e33


Only process instances if there's been a change.

The `true` parameter to `scope.$watch` tells Angular to only execute the supplied function if the watched data has changed. Given our 15s polling interval is likely less than time it takes for any progress to be made on an update, this removes the majority of (no-op) DOM operations.

Testing Done:
Left tab open continually polling a job with ~3000 instances, confirmed that memory usage did not grow beyond ~200MB.

Bugs closed: AURORA-1345

Reviewed at https://reviews.apache.org/r/37956/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/d6b2c7e3
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/d6b2c7e3
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/d6b2c7e3

Branch: refs/heads/master
Commit: d6b2c7e33c3d7eed8fb4c223e5412f03cf3f3312
Parents: 64c00f1
Author: Joshua Cohen <jc...@apache.org>
Authored: Wed Sep 2 13:15:48 2015 -0500
Committer: Joshua Cohen <jc...@apache.org>
Committed: Wed Sep 2 13:15:48 2015 -0500

----------------------------------------------------------------------
 src/main/resources/scheduler/assets/js/directives.js | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/d6b2c7e3/src/main/resources/scheduler/assets/js/directives.js
----------------------------------------------------------------------
diff --git a/src/main/resources/scheduler/assets/js/directives.js b/src/main/resources/scheduler/assets/js/directives.js
index c02c26f..ef94ade 100644
--- a/src/main/resources/scheduler/assets/js/directives.js
+++ b/src/main/resources/scheduler/assets/js/directives.js
@@ -165,17 +165,18 @@
       },
       link: function (scope, element, attrs) {
         scope.$watch('instances', function () {
-          var parent = angular.element('<div></div>');
           if (!scope.instances || scope.instances.length === 0) {
             return;
           }
+
           var cssClasses = [ 'instance-grid', scope.size ];
           var aborted = scope.status === JobUpdateStatus.ABORTED;
           if (aborted) {
             cssClasses.push(ABORTED.toLowerCase());
           }
 
-          var list = angular.element('<ul class="' + cssClasses.join(' ') + '"></ul>');
+          var parent = angular.element('<div></div>');
+          var list = angular.element('<ul class="instance-grid ' + scope.size + '"></ul>');
 
           scope.instances.forEach(function (i) {
             var n = i.instanceId;
@@ -199,7 +200,7 @@
           parent.append(list);
           element.html(parent.html());
           $compile(element)(scope);
-        });
+        }, true);
       }
     };
   });