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 Events vs Events2 (v35) Revision 35 of this benchmark created by stefan on May 10, 2013 Preparation HTML <script src ='//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js' > </script >
<script src ="//rawgithub.com/wycats/handlebars.js/1.0.0-rc.3/dist/handlebars.runtime.js" > </script >
<script src ='//cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.underscore.js' > </script >
<script src ='//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js' > </script >
<script >
var backboneEvents = Backbone .Events ;
</script >
<script src ="//builds.emberjs.com.s3.amazonaws.com/ember-1.0.0-rc.3.min.js" > </script >
<script >
var emberEvents = Ember .Object .extend (Ember .Evented );
</script >
Setup var backboneObject = _.extend ({x :0 }, backboneEvents);
var emberObject = emberEvents.create ({x :0 });
var jqueryObject = $({x :0 });
var numEvents = 3 ;
var numListeners = 100 ;
var objs = [backboneObject, emberObject, jqueryObject];
_.times (numEvents, function (n ) {
_.times (numListeners, function ( ) {
_.each (objs, function (obj ) {
obj.on ('event' + n, function ( ) { obj.x ++; });
});
});
});
Test runner Ready to run.
Run Quick Run Testing in Test Ops/sec Backbone for (var i = 0 ; i < numEvents; i++) {
backboneObject.trigger ('event' + i, 1 , 2 , 3 );
}
ready
Ember for (var i = 0 ; i < numEvents; i++) {
emberObject.trigger ('event' + i, 1 , 2 , 3 );
}
ready
jQuery for (var i = 0 ; i < numEvents; i++) {
jqueryObject.triggerHandler ('event' + i, [1 , 2 , 3 ]);
}
ready
Revisions You can edit these tests or add more tests to this page by appending /edit to the URL.
Revision 1 : published on December 10, 2012 Revision 2 : published by Jeremy Ashkenas on December 12, 2012 Revision 3 : published by Jeremy Ashkenas on December 12, 2012 Revision 4 : published by Jeremy Ashkenas on December 13, 2012 Revision 5 : published on December 13, 2012 Revision 6 : published on December 13, 2012 Revision 7 : published on December 13, 2012 Revision 8 : published by Jeremy Ashkenas on December 14, 2012 Revision 9 : published on December 14, 2012 Revision 10 : published by Romain Beauxis on December 14, 2012 Revision 12 : published on December 14, 2012 Revision 14 : published on December 18, 2012 Revision 15 : published on December 18, 2012 Revision 16 : published by Tim Griesser on December 19, 2012 Revision 17 : published on January 8, 2013 Revision 19 : published on January 29, 2013 Revision 20 : published on January 29, 2013 Revision 21 : published on February 7, 2013 Revision 22 : published on February 7, 2013 Revision 23 : published on February 7, 2013 Revision 24 : published on February 7, 2013 Revision 25 : published by ryan on February 11, 2013 Revision 33 : published on May 9, 2013 Revision 34 : published on May 9, 2013 Revision 35 : published by stefan on May 10, 2013 Revision 36 : published by stefan on May 10, 2013 Revision 38 : published by stefan on May 15, 2013 Revision 40 : published by Paul Miller on November 2, 2013