diff options
author | Benedikt Meurer <bmeurer@google.com> | 2017-07-03 11:52:37 +0200 |
---|---|---|
committer | Matteo Collina <hello@matteocollina.com> | 2017-07-05 13:14:13 +0200 |
commit | 0011eb28cf56deedba9c3e61865554aa19a63b9e (patch) | |
tree | b77144baf699fd0f2a8f97d2f2973f4a65d00854 /benchmark/events | |
parent | 6e86a70da2f54bd68cc5a8038a5d6940d6a4fce9 (diff) | |
download | android-node-v8-0011eb28cf56deedba9c3e61865554aa19a63b9e.tar.gz android-node-v8-0011eb28cf56deedba9c3e61865554aa19a63b9e.tar.bz2 android-node-v8-0011eb28cf56deedba9c3e61865554aa19a63b9e.zip |
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>
Diffstat (limited to 'benchmark/events')
-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); } |