jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
Benchmark angular 1.0.2 angular 1.2.26 against 1.3.14
<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>
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);
baseScope = null;
legacyScope = null;
latestScope = null;
ascope7 = null;
ascope8 = null;
ascope84o = null;
ascope8o = null;
Ready to run.
Test | Ops/sec | |
---|---|---|
Angular 1.0.2 |
| ready |
Angular 1.2.26 |
| ready |
Angular 1.3.14 |
| ready |
Angular Light 0.7 |
| ready |
Angular Light 0.8 |
| ready |
Object.observe + Angular Light 0.8.4 |
| ready |
Object.observe + Angular Light (last) |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.