AngularJS Digest 1.2 vs 1.3 vs 1.4 (v51)

Revision 51 of this benchmark created by L on


Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script>
<script> angular125 = angular; angular = undefined;</script>

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script>
<script> angular1216 = angular; angular = undefined;</script>

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script> angular1315 = angular; angular = undefined;</script>

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
<script> angular14 = angular; angular = undefined;</script>

Setup

function createScopeTree(angular) {
      var rootScope = angular.injector(['ng']).get('$rootScope');
    
      for (var i = 0; i < 100; i++) {
        var child = rootScope.$new(true);
        child.a = {
          b: {
            c: 1
          }
        };
        for (var j = 0; j < 100; j++) {
          child.$watch('a["b"].c + 3', function() {});
        }
      }
      rootScope.$digest();
      return rootScope;
    }
    
    
    var ang125Scope = createScopeTree(angular125);
    var ang1216Scope = createScopeTree(angular1216);
    var ang1315Scope = createScopeTree(angular1315);
    var ang14Scope = createScopeTree(angular14);

Teardown


    ang125Scope = null;
    ang1216Scope = null;
    ang1315Scope = null;
    ang14Scope = null;
  

Test runner

Ready to run.

Testing in
TestOps/sec
Warmup 1.2.5
ang125Scope.$digest();
ready
1.2.5
ang125Scope.$digest();
ready
Warmup 1.2.16
ang1216Scope.$digest();
ready
1.2.16
ang1216Scope.$digest();
ready
Warmup 1.3.15
ang1315Scope.$digest();
ready
1.3.15
ang1315Scope.$digest();
ready
Warmup 1.4.0
ang14Scope.$digest();
ready
1.4.0
ang14Scope.$digest();
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.