diff options
author | Brian White <mscdex@mscdex.net> | 2020-06-06 21:18:46 +0300 |
---|---|---|
committer | Shelley Vohr <shelley.vohr@gmail.com> | 2020-06-30 19:34:06 +0300 |
commit | 3ccb7798971f6ca791fe6841b328baca5895cfd0 (patch) | |
tree | 09a826997fea30896f30475c86733201887bd6fb /benchmark | |
parent | a96c68cd4e648e11c6cde1a427424b9e27ce16c9 (diff) |
events: improve arrayClone performance
PR-URL: https://github.com/nodejs/node/pull/33774
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Reviewed-By: Zeyu Yang <himself65@outlook.com>
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/events/ee-emit.js | 1 | ||||
-rw-r--r-- | benchmark/events/ee-listeners-many.js | 22 | ||||
-rw-r--r-- | benchmark/events/ee-listeners.js | 30 |
3 files changed, 23 insertions, 30 deletions
diff --git a/benchmark/events/ee-emit.js b/benchmark/events/ee-emit.js index 39bcbb937d6..ec35277a9c0 100644 --- a/benchmark/events/ee-emit.js +++ b/benchmark/events/ee-emit.js @@ -10,6 +10,7 @@ const bench = common.createBenchmark(main, { function main({ n, argc, listeners }) { const ee = new EventEmitter(); + ee.setMaxListeners(listeners + 1); for (let k = 0; k < listeners; k += 1) ee.on('dummy', () => {}); diff --git a/benchmark/events/ee-listeners-many.js b/benchmark/events/ee-listeners-many.js deleted file mode 100644 index bd3f3538d63..00000000000 --- a/benchmark/events/ee-listeners-many.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const EventEmitter = require('events').EventEmitter; - -const bench = common.createBenchmark(main, { n: [5e6] }); - -function main({ n }) { - const ee = new EventEmitter(); - ee.setMaxListeners(101); - - for (let k = 0; k < 50; k += 1) { - ee.on('dummy0', () => {}); - ee.on('dummy1', () => {}); - } - - bench.start(); - for (let i = 0; i < n; i += 1) { - const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1'; - ee.listeners(dummy); - } - bench.end(n); -} diff --git a/benchmark/events/ee-listeners.js b/benchmark/events/ee-listeners.js index 867393efffc..08631e95e21 100644 --- a/benchmark/events/ee-listeners.js +++ b/benchmark/events/ee-listeners.js @@ -2,20 +2,34 @@ const common = require('../common.js'); const EventEmitter = require('events').EventEmitter; -const bench = common.createBenchmark(main, { n: [5e6] }); +const bench = common.createBenchmark(main, { + n: [5e6], + listeners: [5, 50], + raw: ['true', 'false'] +}); -function main({ n }) { +function main({ n, listeners, raw }) { const ee = new EventEmitter(); + ee.setMaxListeners(listeners * 2 + 1); - for (let k = 0; k < 5; k += 1) { + for (let k = 0; k < listeners; k += 1) { ee.on('dummy0', () => {}); ee.on('dummy1', () => {}); } - bench.start(); - for (let i = 0; i < n; i += 1) { - const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1'; - ee.listeners(dummy); + if (raw === 'true') { + bench.start(); + for (let i = 0; i < n; i += 1) { + const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1'; + ee.rawListeners(dummy); + } + bench.end(n); + } else { + bench.start(); + for (let i = 0; i < n; i += 1) { + const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1'; + ee.listeners(dummy); + } + bench.end(n); } - bench.end(n); } |