Skip to content

Commit 14e57c1

Browse files
Fishrock123MylesBorins
authored andcommitted
benchmark: add more thorough timers benchmarks
Refs: #9493 PR-URL: #10925 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Trevor Norris <[email protected]>
1 parent 2f4b6bd commit 14e57c1

5 files changed

+126
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
'use strict';
2+
var common = require('../common.js');
3+
var assert = require('assert');
4+
5+
var bench = common.createBenchmark(main, {
6+
thousands: [500],
7+
});
8+
9+
function main(conf) {
10+
var iterations = +conf.thousands * 1e3;
11+
12+
var timer = setTimeout(() => {}, 1);
13+
for (var i = 0; i < iterations; i++) {
14+
setTimeout(cb, 1);
15+
}
16+
var next = timer._idlePrev;
17+
clearTimeout(timer);
18+
19+
bench.start();
20+
21+
for (var j = 0; j < iterations; j++) {
22+
timer = next;
23+
next = timer._idlePrev;
24+
clearTimeout(timer);
25+
}
26+
27+
bench.end(iterations / 1e3);
28+
}
29+
30+
function cb() {
31+
assert(false, 'Timer should not call callback');
32+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
'use strict';
2+
var common = require('../common.js');
3+
var assert = require('assert');
4+
5+
var bench = common.createBenchmark(main, {
6+
thousands: [100],
7+
});
8+
9+
function main(conf) {
10+
var iterations = +conf.thousands * 1e3;
11+
12+
var timersList = [];
13+
for (var i = 0; i < iterations; i++) {
14+
timersList.push(setTimeout(cb, i + 1));
15+
}
16+
17+
bench.start();
18+
for (var j = 0; j < iterations + 1; j++) {
19+
clearTimeout(timersList[j]);
20+
}
21+
bench.end(iterations / 1e3);
22+
}
23+
24+
function cb() {
25+
assert(false, 'Timer ' + this._idleTimeout + ' should not call callback');
26+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
'use strict';
2+
var common = require('../common.js');
3+
4+
var bench = common.createBenchmark(main, {
5+
thousands: [500],
6+
});
7+
8+
function main(conf) {
9+
var iterations = +conf.thousands * 1e3;
10+
11+
bench.start();
12+
13+
for (var i = 0; i < iterations; i++) {
14+
setTimeout(() => {}, 1);
15+
}
16+
17+
bench.end(iterations / 1e3);
18+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
'use strict';
2+
var common = require('../common.js');
3+
var assert = require('assert');
4+
5+
var bench = common.createBenchmark(main, {
6+
thousands: [100],
7+
});
8+
9+
function main(conf) {
10+
var iterations = +conf.thousands * 1e3;
11+
12+
var timersList = [];
13+
14+
bench.start();
15+
for (var i = 0; i < iterations; i++) {
16+
timersList.push(setTimeout(cb, i + 1));
17+
}
18+
bench.end(iterations / 1e3);
19+
20+
for (var j = 0; j < iterations + 1; j++) {
21+
clearTimeout(timersList[j]);
22+
}
23+
}
24+
25+
function cb() {
26+
assert(false, 'Timer ' + this._idleTimeout + ' should not call callback');
27+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
'use strict';
2+
var common = require('../common.js');
3+
4+
var bench = common.createBenchmark(main, {
5+
thousands: [500],
6+
});
7+
8+
function main(conf) {
9+
var iterations = +conf.thousands * 1e3;
10+
var count = 0;
11+
12+
for (var i = 0; i < iterations; i++) {
13+
setTimeout(cb, 1);
14+
}
15+
16+
bench.start();
17+
18+
function cb() {
19+
count++;
20+
if (count === iterations)
21+
bench.end(iterations / 1e3);
22+
}
23+
}

0 commit comments

Comments
 (0)