Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

benchmark: add more EventEmitter benchmarks #730

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions benchmark/events/ee-emit-multi-args.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
var common = require('../common.js');
var EventEmitter = require('events').EventEmitter;

var bench = common.createBenchmark(main, {n: [25e4]});

function main(conf) {
var n = conf.n | 0;

var ee = new EventEmitter();
var listeners = [];

for (var k = 0; k < 10; k += 1)
ee.on('dummy', function() {});

bench.start();
for (var i = 0; i < n; i += 1) {
ee.emit('dummy', 5, true);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any chance we could do a varying range of argument length (i.e. 1-4) for this one? I'd say we could use .apply() since the benchmarks are only compared against eachother, really

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't care one way or the other. I just picked some number of arguments. I'm not sure if it'd be best to have a separate benchmark for one with tons of arguments or to lump them all into one....

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was just thinking on the basis of your PR comment, and that it would be best to express that in a benchmark -- of course, this comment is pretty much only based on that PR, so thats up to you

}
bench.end(n);
}
19 changes: 19 additions & 0 deletions benchmark/events/ee-emit.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
var common = require('../common.js');
var EventEmitter = require('events').EventEmitter;

var bench = common.createBenchmark(main, {n: [25e4]});

function main(conf) {
var n = conf.n | 0;

var ee = new EventEmitter();

for (var k = 0; k < 10; k += 1)
ee.on('dummy', function() {});

bench.start();
for (var i = 0; i < n; i += 1) {
ee.emit('dummy');
}
bench.end(n);
}
20 changes: 20 additions & 0 deletions benchmark/events/ee-listener-count.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
var common = require('../common.js');
var EventEmitter = require('events').EventEmitter;

var bench = common.createBenchmark(main, {n: [25e4]});

function main(conf) {
var n = conf.n | 0;

var ee = new EventEmitter();
var listenerCount = EventEmitter.listenerCount;

for (var k = 0; k < 10; k += 1)
ee.on('dummy', function() {});

bench.start();
for (var i = 0; i < n; i += 1) {
var r = listenerCount(ee, 'dummy');
}
bench.end(n);
}
20 changes: 20 additions & 0 deletions benchmark/events/ee-listeners-many.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
var common = require('../common.js');
var EventEmitter = require('events').EventEmitter;

var bench = common.createBenchmark(main, {n: [25e4]});

function main(conf) {
var n = conf.n | 0;

var ee = new EventEmitter();
ee.setMaxListeners(101);

for (var k = 0; k < 100; k += 1)
ee.on('dummy', function() {});

bench.start();
for (var i = 0; i < n; i += 1) {
var r = ee.listeners('dummy');
}
bench.end(n);
}
19 changes: 19 additions & 0 deletions benchmark/events/ee-listeners.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
var common = require('../common.js');
var EventEmitter = require('events').EventEmitter;

var bench = common.createBenchmark(main, {n: [25e4]});

function main(conf) {
var n = conf.n | 0;

var ee = new EventEmitter();

for (var k = 0; k < 10; k += 1)
ee.on('dummy', function() {});

bench.start();
for (var i = 0; i < n; i += 1) {
var r = ee.listeners('dummy');
}
bench.end(n);
}