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>
This commit is contained in:
parent
6e86a70da2
commit
0011eb28cf
@ -16,10 +16,13 @@ function main(conf) {
|
|||||||
|
|
||||||
bench.start();
|
bench.start();
|
||||||
for (var i = 0; i < n; i += 1) {
|
for (var i = 0; i < n; i += 1) {
|
||||||
for (k = listeners.length; --k >= 0; /* empty */)
|
var dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
|
||||||
ee.on('dummy', listeners[k]);
|
for (k = listeners.length; --k >= 0; /* empty */) {
|
||||||
for (k = listeners.length; --k >= 0; /* empty */)
|
ee.on(dummy, listeners[k]);
|
||||||
ee.removeListener('dummy', listeners[k]);
|
}
|
||||||
|
for (k = listeners.length; --k >= 0; /* empty */) {
|
||||||
|
ee.removeListener(dummy, listeners[k]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
bench.end(n);
|
bench.end(n);
|
||||||
}
|
}
|
||||||
|
@ -9,12 +9,15 @@ function main(conf) {
|
|||||||
|
|
||||||
var ee = new EventEmitter();
|
var ee = new EventEmitter();
|
||||||
|
|
||||||
for (var k = 0; k < 10; k += 1)
|
for (var k = 0; k < 5; k += 1) {
|
||||||
ee.on('dummy', function() {});
|
ee.on('dummy0', function() {});
|
||||||
|
ee.on('dummy1', function() {});
|
||||||
|
}
|
||||||
|
|
||||||
bench.start();
|
bench.start();
|
||||||
for (var i = 0; i < n; i += 1) {
|
for (var i = 0; i < n; i += 1) {
|
||||||
ee.listenerCount('dummy');
|
var dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
|
||||||
|
ee.listenerCount(dummy);
|
||||||
}
|
}
|
||||||
bench.end(n);
|
bench.end(n);
|
||||||
}
|
}
|
||||||
|
@ -10,12 +10,15 @@ function main(conf) {
|
|||||||
var ee = new EventEmitter();
|
var ee = new EventEmitter();
|
||||||
ee.setMaxListeners(101);
|
ee.setMaxListeners(101);
|
||||||
|
|
||||||
for (var k = 0; k < 100; k += 1)
|
for (var k = 0; k < 50; k += 1) {
|
||||||
ee.on('dummy', function() {});
|
ee.on('dummy0', function() {});
|
||||||
|
ee.on('dummy1', function() {});
|
||||||
|
}
|
||||||
|
|
||||||
bench.start();
|
bench.start();
|
||||||
for (var i = 0; i < n; i += 1) {
|
for (var i = 0; i < n; i += 1) {
|
||||||
ee.listeners('dummy');
|
var dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
|
||||||
|
ee.listeners(dummy);
|
||||||
}
|
}
|
||||||
bench.end(n);
|
bench.end(n);
|
||||||
}
|
}
|
||||||
|
@ -9,12 +9,15 @@ function main(conf) {
|
|||||||
|
|
||||||
var ee = new EventEmitter();
|
var ee = new EventEmitter();
|
||||||
|
|
||||||
for (var k = 0; k < 10; k += 1)
|
for (var k = 0; k < 5; k += 1) {
|
||||||
ee.on('dummy', function() {});
|
ee.on('dummy0', function() {});
|
||||||
|
ee.on('dummy1', function() {});
|
||||||
|
}
|
||||||
|
|
||||||
bench.start();
|
bench.start();
|
||||||
for (var i = 0; i < n; i += 1) {
|
for (var i = 0; i < n; i += 1) {
|
||||||
ee.listeners('dummy');
|
var dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
|
||||||
|
ee.listeners(dummy);
|
||||||
}
|
}
|
||||||
bench.end(n);
|
bench.end(n);
|
||||||
}
|
}
|
||||||
|
@ -13,8 +13,9 @@ function main(conf) {
|
|||||||
|
|
||||||
bench.start();
|
bench.start();
|
||||||
for (var i = 0; i < n; i += 1) {
|
for (var i = 0; i < n; i += 1) {
|
||||||
ee.once('dummy', listener);
|
var dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
|
||||||
ee.emit('dummy');
|
ee.once(dummy, listener);
|
||||||
|
ee.emit(dummy);
|
||||||
}
|
}
|
||||||
bench.end(n);
|
bench.end(n);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user