Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenedikt Meurer <bmeurer@google.com>2017-07-03 12:52:37 +0300
committerMatteo Collina <hello@matteocollina.com>2017-07-05 14:14:13 +0300
commit0011eb28cf56deedba9c3e61865554aa19a63b9e (patch)
treeb77144baf699fd0f2a8f97d2f2973f4a65d00854
parent6e86a70da2f54bd68cc5a8038a5d6940d6a4fce9 (diff)
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 99d85367cb8..1140a81649f 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 dfe7e27cd09..269fd5a493e 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 063732e1fac..09e533de32b 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 e91ca5078f5..56c0e85dad4 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 29ea562c406..56f7fb9e7c3 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);
}