diff --git a/benchmark/events/ee-add-once.js b/benchmark/events/ee-add-once.js new file mode 100644 index 00000000000000..532f3be9c6b924 --- /dev/null +++ b/benchmark/events/ee-add-once.js @@ -0,0 +1,23 @@ +var common = require('../common.js'); +var events = require('events'); + +var bench = common.createBenchmark(main, {n: [25e4]}); + +function main(conf) { + var n = conf.n | 0; + + var ee = new events.EventEmitter(); + var listeners = []; + + for (var k = 0; k < 10; k += 1) + listeners.push(function() {}); + + ee.setMaxListeners(n * 10); + + bench.start(); + for (var i = 0; i < n; i += 1) { + for (var k = listeners.length; --k >= 0; /* empty */) + ee.once('dummy', listeners[k]); + } + bench.end(n); +} diff --git a/benchmark/events/ee-add-remove.js b/benchmark/events/ee-add-remove-on.js similarity index 100% rename from benchmark/events/ee-add-remove.js rename to benchmark/events/ee-add-remove-on.js diff --git a/benchmark/events/ee-emit-mixed.js b/benchmark/events/ee-emit-mixed.js new file mode 100644 index 00000000000000..979cd78ce2fac1 --- /dev/null +++ b/benchmark/events/ee-emit-mixed.js @@ -0,0 +1,23 @@ +var common = require('../common.js'); +var EventEmitter = require('events').EventEmitter; + +var bench = common.createBenchmark(main, {n: [2e6]}); + +function main(conf) { + var n = conf.n | 0; + + var ee = new EventEmitter(); + + for (var k = 0; k < 10; k += 1) { + if (k % 2) + ee.once('dummy', function() {}); + else + ee.on('dummy', function() {}); + } + + bench.start(); + for (var i = 0; i < n; i += 1) { + ee.emit('dummy'); + } + bench.end(n); +} diff --git a/benchmark/events/ee-emit-multi-args-mixed.js b/benchmark/events/ee-emit-multi-args-mixed.js new file mode 100644 index 00000000000000..49cff4894870d8 --- /dev/null +++ b/benchmark/events/ee-emit-multi-args-mixed.js @@ -0,0 +1,24 @@ +var common = require('../common.js'); +var EventEmitter = require('events').EventEmitter; + +var bench = common.createBenchmark(main, {n: [2e6]}); + +function main(conf) { + var n = conf.n | 0; + + var ee = new EventEmitter(); + var listeners = []; + + for (var k = 0; k < 10; k += 1) { + if (k % 2) + ee.once('dummy', function() {}); + else + ee.on('dummy', function() {}); + } + + bench.start(); + for (var i = 0; i < n; i += 1) { + ee.emit('dummy', 5, true); + } + bench.end(n); +} diff --git a/benchmark/events/ee-emit-multi-args.js b/benchmark/events/ee-emit-multi-args-on.js similarity index 100% rename from benchmark/events/ee-emit-multi-args.js rename to benchmark/events/ee-emit-multi-args-on.js diff --git a/benchmark/events/ee-emit-multi-args-once.js b/benchmark/events/ee-emit-multi-args-once.js new file mode 100644 index 00000000000000..bfb4497b1682cd --- /dev/null +++ b/benchmark/events/ee-emit-multi-args-once.js @@ -0,0 +1,20 @@ +var common = require('../common.js'); +var EventEmitter = require('events').EventEmitter; + +var bench = common.createBenchmark(main, {n: [2e6]}); + +function main(conf) { + var n = conf.n | 0; + + var ee = new EventEmitter(); + var listeners = []; + + for (var k = 0; k < 10; k += 1) + ee.once('dummy', function() {}); + + bench.start(); + for (var i = 0; i < n; i += 1) { + ee.emit('dummy', 5, true); + } + bench.end(n); +} diff --git a/benchmark/events/ee-emit.js b/benchmark/events/ee-emit-on.js similarity index 100% rename from benchmark/events/ee-emit.js rename to benchmark/events/ee-emit-on.js diff --git a/benchmark/events/ee-emit-once.js b/benchmark/events/ee-emit-once.js new file mode 100644 index 00000000000000..49fe3e90d1bbec --- /dev/null +++ b/benchmark/events/ee-emit-once.js @@ -0,0 +1,20 @@ +var common = require('../common.js'); +//var EventEmitter = require('../../lib/events').EventEmitter; +var EventEmitter = require('events').EventEmitter; + +var bench = common.createBenchmark(main, {n: [2e7]}); + +function main(conf) { + var n = conf.n | 0; + + var ee = new EventEmitter(); + + for (var k = 0; k < 10; k += 1) + ee.once('dummy', function() {}); + + bench.start(); + for (var i = 0; i < n; i += 1) { + ee.emit('dummy'); + } + bench.end(n); +}