summaryrefslogtreecommitdiff
path: root/benchmark/events
diff options
context:
space:
mode:
authorBenedikt Meurer <bmeurer@google.com>2017-07-03 11:52:37 +0200
committerMatteo Collina <hello@matteocollina.com>2017-07-05 13:14:13 +0200
commit0011eb28cf56deedba9c3e61865554aa19a63b9e (patch)
treeb77144baf699fd0f2a8f97d2f2973f4a65d00854 /benchmark/events
parent6e86a70da2f54bd68cc5a8038a5d6940d6a4fce9 (diff)
downloadandroid-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.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);
}