diff options
author | Benedikt Meurer <bmeurer@google.com> | 2017-07-03 11:52:37 +0200 |
---|---|---|
committer | Jeremiah Senkpiel <fishrock123@rocketmail.com> | 2017-07-19 15:02:09 -0400 |
commit | 9dbeea0cc9a82cf1f3b8aafd097d57219d5c2d5a (patch) | |
tree | c709f4bf8ed9b7181f5fae6454300097ab0b23eb | |
parent | c83b3ae92e7b49eb6bc0ab56b4a0fc00e5aadb57 (diff) | |
download | node-new-9dbeea0cc9a82cf1f3b8aafd097d57219d5c2d5a.tar.gz |
benchmark: Improve event performance tests.
Currently most of the event tests only test a single event type,
which might let those benchmark take fast-paths (in V8) that aren't
taken in realistic use cases, and thus the benchmarks are not good
proxies of real world uses.
PR-URL: https://github.com/nodejs/node/pull/14052
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
-rw-r--r-- | benchmark/events/ee-add-remove.js | 11 | ||||
-rw-r--r-- | benchmark/events/ee-listener-count-on-prototype.js | 9 | ||||
-rw-r--r-- | benchmark/events/ee-listeners-many.js | 9 | ||||
-rw-r--r-- | benchmark/events/ee-listeners.js | 9 | ||||
-rw-r--r-- | benchmark/events/ee-once.js | 5 |
5 files changed, 28 insertions, 15 deletions
diff --git a/benchmark/events/ee-add-remove.js b/benchmark/events/ee-add-remove.js index 99d85367cb..1140a81649 100644 --- a/benchmark/events/ee-add-remove.js +++ b/benchmark/events/ee-add-remove.js @@ -16,10 +16,13 @@ function main(conf) { bench.start(); for (var i = 0; i < n; i += 1) { - for (k = listeners.length; --k >= 0; /* empty */) - ee.on('dummy', listeners[k]); - for (k = listeners.length; --k >= 0; /* empty */) - ee.removeListener('dummy', listeners[k]); + var dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1'; + for (k = listeners.length; --k >= 0; /* empty */) { + ee.on(dummy, listeners[k]); + } + for (k = listeners.length; --k >= 0; /* empty */) { + ee.removeListener(dummy, listeners[k]); + } } bench.end(n); } diff --git a/benchmark/events/ee-listener-count-on-prototype.js b/benchmark/events/ee-listener-count-on-prototype.js index dfe7e27cd0..269fd5a493 100644 --- a/benchmark/events/ee-listener-count-on-prototype.js +++ b/benchmark/events/ee-listener-count-on-prototype.js @@ -9,12 +9,15 @@ function main(conf) { var ee = new EventEmitter(); - for (var k = 0; k < 10; k += 1) - ee.on('dummy', function() {}); + for (var k = 0; k < 5; k += 1) { + ee.on('dummy0', function() {}); + ee.on('dummy1', function() {}); + } bench.start(); for (var i = 0; i < n; i += 1) { - ee.listenerCount('dummy'); + var dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1'; + ee.listenerCount(dummy); } bench.end(n); } diff --git a/benchmark/events/ee-listeners-many.js b/benchmark/events/ee-listeners-many.js index 063732e1fa..09e533de32 100644 --- a/benchmark/events/ee-listeners-many.js +++ b/benchmark/events/ee-listeners-many.js @@ -10,12 +10,15 @@ function main(conf) { var ee = new EventEmitter(); ee.setMaxListeners(101); - for (var k = 0; k < 100; k += 1) - ee.on('dummy', function() {}); + for (var k = 0; k < 50; k += 1) { + ee.on('dummy0', function() {}); + ee.on('dummy1', function() {}); + } bench.start(); for (var i = 0; i < n; i += 1) { - ee.listeners('dummy'); + var 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 e91ca5078f..56c0e85dad 100644 --- a/benchmark/events/ee-listeners.js +++ b/benchmark/events/ee-listeners.js @@ -9,12 +9,15 @@ function main(conf) { var ee = new EventEmitter(); - for (var k = 0; k < 10; k += 1) - ee.on('dummy', function() {}); + for (var k = 0; k < 5; k += 1) { + ee.on('dummy0', function() {}); + ee.on('dummy1', function() {}); + } bench.start(); for (var i = 0; i < n; i += 1) { - ee.listeners('dummy'); + var dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1'; + ee.listeners(dummy); } bench.end(n); } diff --git a/benchmark/events/ee-once.js b/benchmark/events/ee-once.js index 29ea562c40..56f7fb9e7c 100644 --- a/benchmark/events/ee-once.js +++ b/benchmark/events/ee-once.js @@ -13,8 +13,9 @@ function main(conf) { bench.start(); for (var i = 0; i < n; i += 1) { - ee.once('dummy', listener); - ee.emit('dummy'); + var dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1'; + ee.once(dummy, listener); + ee.emit(dummy); } bench.end(n); } |