Skip to content
Closed
Changes from 1 commit
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
Prev Previous commit
Next Next commit
Fix benchmark
Fixed the `ee-newlistener` benchmark.
  • Loading branch information
VoltrexKeyva authored Apr 22, 2021
commit c32aa26e916d36c28fbf719c55575d9b7cdedc30
33 changes: 21 additions & 12 deletions benchmark/events/ee-newlistener.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,35 @@
'use strict';
const common = require('../common.js');
const EventEmitter = require('events').EventEmitter;
const MathRandom = Math.random;
const { EventEmitter } = require('events');

const bench = common.createBenchmark(main, { n: [1e6] });
const bench = common.createBenchmark(main, {
newListener: [0, 1],
removeListener: [0, 1],
n: [1e6]
});

function main({ n }) {
function main({ newListener, removeListener, n }) {
const ee = new EventEmitter();
const listeners = [];

for (let i = 0; i < 10; i += 1) {
const listener = () => {};
if ((MathRandom() + .5) >= 1) listener.listener = () => {};
listeners.push(listener);
}
for (let k = 0; k < 10; k += 1)
listeners.push(() => {});

if (newListener === 1)
ee.on('newListener', (event, listener) => {});

ee.on('newListener', () => {});
if (removeListener === 1)
ee.on('removeListener', (event, listener) => {});

bench.start();
for (let i = 0; i < n; i += 1) {
for (let k = 0; k < listeners.length; k += 1)
ee.emit('newListener', listeners[k].listener ?? listeners[k]);
const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
for (let k = listeners.length; --k >= 0; /* empty */) {
ee.on(dummy, listeners[k]);
}
for (let k = listeners.length; --k >= 0; /* empty */) {
ee.removeListener(dummy, listeners[k]);
}
}
bench.end(n);
}