AngularJS: digest (v66)

Revision 66 of this benchmark created by Oleg on


Description

Benchmark angular 1.0.2 angular 1.2.26 against 1.3.14

Preparation HTML

<script src="//code.angularjs.org/1.0.2/angular.min.js"></script>
<script> angularBase = angular; angular = undefined;</script>

<script src="//code.angularjs.org/1.2.26/angular.min.js"></script>
<script> angularLegacy = angular; angular = undefined;</script>

<script src="//code.angularjs.org/1.3.14/angular.min.js"></script>
<script> angularLatest = angular; angular = undefined;</script>

<script>alightInitCallback = function(alight) { window.alight7 = alight }</script>
<script src="http://angularlight.org/bin/alight.last.min.js"></script>

<script>alightInitCallback = function(b) { window.alight84=b() }</script>
<script src="http://angularlight.org/bin/alight_0.8.4.min.js"></script>

<script>alightInitCallback = function(b) { window.alight8=b() }</script>
<script src="http://angularlight.org/bin/alight_0.8.last.min.js"></script>

Setup

function createScopeTree(angular, flag, useObserver) {
      var rootScope;
      if(flag) rootScope = angular.Scope({useObserver: useObserver});
      else rootScope = angular.injector(['ng']).get('$rootScope');
    
      for(var i=0; i < 100; i++) {
        var child = rootScope.$new();
        for(var j=0; j < 100; j++) {
          child['a'+j] = {b:{c:1}};
          child.$watch('a'+j+'.b.c', function() {});
        }
      }
      if(useObserver) rootScope.$scan();
      return rootScope;
    }
    
    
    var baseScope = createScopeTree(angularBase);
    var legacyScope = createScopeTree(angularLegacy);
    var latestScope = createScopeTree(angularLatest);
    var ascope7 = createScopeTree(alight7, 1);
    var ascope8 = createScopeTree(alight8, 1);
    var ascope84o = createScopeTree(alight84, 1, true);
    var ascope8o = createScopeTree(alight8, 1, true);

Teardown


    baseScope = null;
    legacyScope = null;
    latestScope = null;
    ascope7 = null;
    ascope8 = null;
    ascope84o = null;
    ascope8o = null;
    
  

Test runner

Ready to run.

Testing in
TestOps/sec
Angular 1.0.2
baseScope.$digest();
ready
Angular 1.2.26
legacyScope.$digest();
ready
Angular 1.3.14
latestScope.$digest();
ready
Angular Light 0.7
ascope7.$scan();
ready
Angular Light 0.8
ascope8.$scan();
ready
Object.observe + Angular Light 0.8.4
ascope84o.$scan();
 
ready
Object.observe + Angular Light (last)
ascope8o.$scan()
ready

Revisions

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