1'use strict'; 2const common = require('../common.js'); 3const { EventEmitter } = require('events'); 4 5const bench = common.createBenchmark(main, { 6 events: [1, 2, 3, 5, 10, 20], 7 n: [1e6], 8}); 9 10function main({ events, n }) { 11 const ee = new EventEmitter(); 12 const listeners = []; 13 14 for (let k = 0; k < 10; k += 1) 15 listeners.push(() => {}); 16 17 const eventNames = []; 18 for (let k = 0; k < events; ++k) 19 eventNames.push(`dummy${k}`); 20 21 bench.start(); 22 for (let i = 0; i < n; i += 1) { 23 for (const eventName of eventNames) { 24 for (let k = listeners.length; --k >= 0; /* empty */) { 25 ee.on(eventName, listeners[k]); 26 } 27 } 28 for (const eventName of eventNames) { 29 for (let k = listeners.length; --k >= 0; /* empty */) { 30 ee.removeListener(eventName, listeners[k]); 31 } 32 } 33 } 34 bench.end(n); 35} 36