Events vs Events2 (v15)

Revision 15 of this benchmark created on


Description

Adding Vanilla Pub/Sub for reference.

Preparation HTML

<script src='//cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js'></script>
<script src='//underscorejs.org/underscore.js'></script>
<script src='//cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js'></script>
<script>var oldEvents = Backbone.Events;</script>
<script src='//cdnjs.cloudflare.com/ajax/libs/backbone.js/0.5.3/backbone-min.js'></script>
<script>var olderEvents = Backbone.Events;</script>
<script src='//backbonejs.org/backbone.js'></script>
<script>var masterEvents = Backbone.Events;</script>
<script src='http://knockoutjs.com/downloads/knockout-2.2.0.js'></script>
<script src="https://raw.github.com/phiggins42/bloody-jquery-plugins/55e41df9bf08f42378bb08b93efcb28555b61aeb/pubsub.js"></script>

Setup

old = _.extend({}, oldEvents);
    older = _.extend({}, olderEvents);
    master = _.extend({}, masterEvents);
    jquery = $({});
    knockout= new ko.subscribable();
    vps = _.extend({}, Events);
    
    numEvents = 3;
    numListeners = 100;
    
    _.times(numEvents, function(event) {
      _.times(numListeners, function() {
        older.bind("event" + event, function(){});
        old.on("event" + event, function(){});
        jquery.on("event" + event, function(){});
        master.on("event" + event, function(){});
        knockout.subscribe(function(){},null,"event" + event);
        vps.subscribe("event" + event, function() {});
      });
    });

Test runner

Ready to run.

Testing in
TestOps/sec
jQuery 1.8.3
for (var i = 0; i < numEvents; i++) {
  jquery.trigger('event' + i, 1, 2);
}
ready
Backbone 0.5.3
for (var i = 0; i < numEvents; i++) {
  older.trigger('event' + i, 1, 2);
}
ready
Backbone 0.9.2
for (var i = 0; i < numEvents; i++) {
  old.trigger('event' + i, 1, 2);
}
ready
Backbone 0.9.9
for (var i = 0; i < numEvents; i++) {
  master.trigger('event' + i, 1, 2);
}
ready
Knockout v2.2.0
for (var i = 0; i < numEvents; i++) {
 knockout.notifySubscribers(i, 'event' + i);
}
ready
Vanilla Pub/Sub
for (var i = 0; i < numEvents; i++) {
  vps.publish('event' + i, [i]);
}
ready

Revisions

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