Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 44f0f94

Browse filesBrowse files
AndrasFishrock123
authored andcommitted
benchmark: add setImmediate() benchmarks
Timings for sequential and concurren setImmediate() with and without arguments, and set + clearImmediate(). PR-URL: #6436 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
1 parent efb7a90 commit 44f0f94
Copy full SHA for 44f0f94

File tree

Expand file treeCollapse file tree

1 file changed

+113
-0
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+113
-0
lines changed
Open diff view settings
Collapse file

‎benchmark/timers/immediate.js‎

Copy file name to clipboard
+113Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
'use strict';
2+
var common = require('../common.js');
3+
4+
var bench = common.createBenchmark(main, {
5+
thousands: [2000],
6+
type: ['depth', 'depth1', 'breadth', 'breadth1', 'breadth4', 'clear']
7+
});
8+
9+
function main(conf) {
10+
var N = +conf.thousands * 1e3;
11+
switch (conf.type) {
12+
case 'depth':
13+
depth(N);
14+
break;
15+
case 'depth1':
16+
depth1(N);
17+
break;
18+
case 'breadth':
19+
breadth(N);
20+
break;
21+
case 'breadth1':
22+
breadth1(N);
23+
break;
24+
case 'breadth4':
25+
breadth4(N);
26+
break;
27+
case 'clear':
28+
clear(N);
29+
break;
30+
}
31+
}
32+
33+
// setImmediate tail recursion, 0 arguments
34+
function depth(N) {
35+
var n = 0;
36+
bench.start();
37+
setImmediate(cb);
38+
function cb() {
39+
n++;
40+
if (n === N)
41+
bench.end(N / 1e3);
42+
else
43+
setImmediate(cb);
44+
}
45+
}
46+
47+
// setImmediate tail recursion, 1 argument
48+
function depth1(N) {
49+
var n = 0;
50+
bench.start();
51+
setImmediate(cb, 1);
52+
function cb(a1) {
53+
n++;
54+
if (n === N)
55+
bench.end(N / 1e3);
56+
else
57+
setImmediate(cb, 1);
58+
}
59+
}
60+
61+
// concurrent setImmediate, 0 arguments
62+
function breadth(N) {
63+
var n = 0;
64+
bench.start();
65+
function cb() {
66+
n++;
67+
if (n === N)
68+
bench.end(N / 1e3);
69+
}
70+
for (var i = 0; i < N; i++) {
71+
setImmediate(cb);
72+
}
73+
}
74+
75+
// concurrent setImmediate, 1 argument
76+
function breadth1(N) {
77+
var n = 0;
78+
bench.start();
79+
function cb(a1) {
80+
n++;
81+
if (n === N)
82+
bench.end(N / 1e3);
83+
}
84+
for (var i = 0; i < N; i++) {
85+
setImmediate(cb, 1);
86+
}
87+
}
88+
89+
// concurrent setImmediate, 4 arguments
90+
function breadth4(N) {
91+
var n = 0;
92+
bench.start();
93+
function cb(a1, a2, a3, a4) {
94+
n++;
95+
if (n === N)
96+
bench.end(N / 1e3);
97+
}
98+
for (var i = 0; i < N; i++) {
99+
setImmediate(cb, 1, 2, 3, 4);
100+
}
101+
}
102+
103+
function clear(N) {
104+
bench.start();
105+
function cb(a1) {
106+
if (a1 === 2)
107+
bench.end(N / 1e3);
108+
}
109+
for (var i = 0; i < N; i++) {
110+
clearImmediate(setImmediate(cb, 1));
111+
}
112+
setImmediate(cb, 2);
113+
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.