Skip to content

Commit c32aa26

Browse files
authored
Fix benchmark
Fixed the `ee-newlistener` benchmark.
1 parent 5a11a92 commit c32aa26

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

benchmark/events/ee-newlistener.js

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,35 @@
11
'use strict';
22
const common = require('../common.js');
3-
const EventEmitter = require('events').EventEmitter;
4-
const MathRandom = Math.random;
3+
const { EventEmitter } = require('events');
54

6-
const bench = common.createBenchmark(main, { n: [1e6] });
5+
const bench = common.createBenchmark(main, {
6+
newListener: [0, 1],
7+
removeListener: [0, 1],
8+
n: [1e6]
9+
});
710

8-
function main({ n }) {
11+
function main({ newListener, removeListener, n }) {
912
const ee = new EventEmitter();
1013
const listeners = [];
1114

12-
for (let i = 0; i < 10; i += 1) {
13-
const listener = () => {};
14-
if ((MathRandom() + .5) >= 1) listener.listener = () => {};
15-
listeners.push(listener);
16-
}
15+
for (let k = 0; k < 10; k += 1)
16+
listeners.push(() => {});
17+
18+
if (newListener === 1)
19+
ee.on('newListener', (event, listener) => {});
1720

18-
ee.on('newListener', () => {});
21+
if (removeListener === 1)
22+
ee.on('removeListener', (event, listener) => {});
1923

2024
bench.start();
2125
for (let i = 0; i < n; i += 1) {
22-
for (let k = 0; k < listeners.length; k += 1)
23-
ee.emit('newListener', listeners[k].listener ?? listeners[k]);
26+
const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
27+
for (let k = listeners.length; --k >= 0; /* empty */) {
28+
ee.on(dummy, listeners[k]);
29+
}
30+
for (let k = listeners.length; --k >= 0; /* empty */) {
31+
ee.removeListener(dummy, listeners[k]);
32+
}
2433
}
2534
bench.end(n);
2635
}

0 commit comments

Comments
 (0)