summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenedikt Meurer <bmeurer@google.com>2017-07-03 11:52:37 +0200
committerJeremiah Senkpiel <fishrock123@rocketmail.com>2017-07-19 15:02:09 -0400
commit9dbeea0cc9a82cf1f3b8aafd097d57219d5c2d5a (patch)
treec709f4bf8ed9b7181f5fae6454300097ab0b23eb
parentc83b3ae92e7b49eb6bc0ab56b4a0fc00e5aadb57 (diff)
downloadnode-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.js11
-rw-r--r--benchmark/events/ee-listener-count-on-prototype.js9
-rw-r--r--benchmark/events/ee-listeners-many.js9
-rw-r--r--benchmark/events/ee-listeners.js9
-rw-r--r--benchmark/events/ee-once.js5
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);
}