Events vs Events2
JavaScript performance comparison
Info
Adding Vanilla Pub/Sub for reference.
Preparation code
<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>
<script>
Benchmark.prototype.setup = function() {
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() {});
});
});
};
</script>
Preparation code output
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
| Test | Ops/sec | |
|---|---|---|
jQuery 1.8.3 |
|
pending… |
Backbone 0.5.3 |
|
pending… |
Backbone 0.9.2 |
|
pending… |
Backbone 0.9.9 |
|
pending… |
Knockout v2.2.0 |
|
pending… |
Vanilla Pub/Sub |
|
pending… |
Compare results of other browsers
Revisions
You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:
- Revision 1: published
- Revision 2: published by Jeremy Ashkenas
- Revision 3: published by Jeremy Ashkenas
- Revision 4: published by Jeremy Ashkenas
- Revision 5: published
- Revision 6: published
- Revision 7: published
- Revision 8: published by Jeremy Ashkenas
- Revision 9: published
- Revision 10: published by Romain Beauxis
- Revision 12: published
- Revision 14: published
- Revision 15: published
- Revision 16: published by Tim Griesser
- Revision 17: published
- Revision 19: published
- Revision 20: published
- Revision 21: published
- Revision 22: published
- Revision 23: published
- Revision 24: published
- Revision 33: published
- Revision 34: published
- Revision 35: published by stefan
- Revision 36: published by stefan
- Revision 38: published by stefan
0 comments