Skip to content

Commit 65a2e80

Browse files
bmeureraddaleax
authored andcommitted
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: #14052 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Timothy Gu <[email protected]> Reviewed-By: Michaël Zasso <[email protected]>
1 parent cf6afe3 commit 65a2e80

File tree

5 files changed

+28
-15
lines changed

5 files changed

+28
-15
lines changed

‎benchmark/events/ee-add-remove.js‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@ function main(conf){
1616

1717
bench.start();
1818
for(vari=0;i<n;i+=1){
19-
for(k=listeners.length;--k>=0;/* empty */)
20-
ee.on('dummy',listeners[k]);
21-
for(k=listeners.length;--k>=0;/* empty */)
22-
ee.removeListener('dummy',listeners[k]);
19+
vardummy=(i%2===0) ? 'dummy0' : 'dummy1';
20+
for(k=listeners.length;--k>=0;/* empty */){
21+
ee.on(dummy,listeners[k]);
22+
}
23+
for(k=listeners.length;--k>=0;/* empty */){
24+
ee.removeListener(dummy,listeners[k]);
25+
}
2326
}
2427
bench.end(n);
2528
}

‎benchmark/events/ee-listener-count-on-prototype.js‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,15 @@ function main(conf){
99

1010
varee=newEventEmitter();
1111

12-
for(vark=0;k<10;k+=1)
13-
ee.on('dummy',function(){});
12+
for(vark=0;k<5;k+=1){
13+
ee.on('dummy0',function(){});
14+
ee.on('dummy1',function(){});
15+
}
1416

1517
bench.start();
1618
for(vari=0;i<n;i+=1){
17-
ee.listenerCount('dummy');
19+
vardummy=(i%2===0) ? 'dummy0' : 'dummy1';
20+
ee.listenerCount(dummy);
1821
}
1922
bench.end(n);
2023
}

‎benchmark/events/ee-listeners-many.js‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,15 @@ function main(conf){
1010
varee=newEventEmitter();
1111
ee.setMaxListeners(101);
1212

13-
for(vark=0;k<100;k+=1)
14-
ee.on('dummy',function(){});
13+
for(vark=0;k<50;k+=1){
14+
ee.on('dummy0',function(){});
15+
ee.on('dummy1',function(){});
16+
}
1517

1618
bench.start();
1719
for(vari=0;i<n;i+=1){
18-
ee.listeners('dummy');
20+
vardummy=(i%2===0) ? 'dummy0' : 'dummy1';
21+
ee.listeners(dummy);
1922
}
2023
bench.end(n);
2124
}

‎benchmark/events/ee-listeners.js‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,15 @@ function main(conf){
99

1010
varee=newEventEmitter();
1111

12-
for(vark=0;k<10;k+=1)
13-
ee.on('dummy',function(){});
12+
for(vark=0;k<5;k+=1){
13+
ee.on('dummy0',function(){});
14+
ee.on('dummy1',function(){});
15+
}
1416

1517
bench.start();
1618
for(vari=0;i<n;i+=1){
17-
ee.listeners('dummy');
19+
vardummy=(i%2===0) ? 'dummy0' : 'dummy1';
20+
ee.listeners(dummy);
1821
}
1922
bench.end(n);
2023
}

‎benchmark/events/ee-once.js‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ function main(conf){
1313

1414
bench.start();
1515
for(vari=0;i<n;i+=1){
16-
ee.once('dummy',listener);
17-
ee.emit('dummy');
16+
vardummy=(i%2===0) ? 'dummy0' : 'dummy1';
17+
ee.once(dummy,listener);
18+
ee.emit(dummy);
1819
}
1920
bench.end(n);
2021
}

0 commit comments

Comments
(0)