Skip to content

Commit 076b3d9

Browse files
BridgeARMylesBorins
authored andcommitted
benchmark: (es) refactor
PR-URL: #18320 Reviewed-By: James M Snell <[email protected]>
1 parent 76cb958 commit 076b3d9

9 files changed

+94
-129
lines changed

benchmark/es/defaultparams-bench.js

+9-15
Original file line numberDiff line numberDiff line change
@@ -20,37 +20,31 @@ function defaultParams(x = 1, y = 2) {
2020
assert.strictEqual(y, 2);
2121
}
2222

23-
function runOldStyleDefaults(n) {
24-
25-
var i = 0;
23+
function runOldStyleDefaults(millions) {
2624
bench.start();
27-
for (; i < n; i++)
25+
for (var i = 0; i < millions * 1e6; i++)
2826
oldStyleDefaults();
29-
bench.end(n / 1e6);
27+
bench.end(millions);
3028
}
3129

32-
function runDefaultParams(n) {
33-
34-
var i = 0;
30+
function runDefaultParams(millions) {
3531
bench.start();
36-
for (; i < n; i++)
32+
for (var i = 0; i < millions * 1e6; i++)
3733
defaultParams();
38-
bench.end(n / 1e6);
34+
bench.end(millions);
3935
}
4036

4137
function main({ millions, method }) {
42-
const n = millions * 1e6;
43-
4438
switch (method) {
4539
case '':
4640
// Empty string falls through to next line as default, mostly for tests.
4741
case 'withoutdefaults':
48-
runOldStyleDefaults(n);
42+
runOldStyleDefaults(millions);
4943
break;
5044
case 'withdefaults':
51-
runDefaultParams(n);
45+
runDefaultParams(millions);
5246
break;
5347
default:
54-
throw new Error('Unexpected method');
48+
throw new Error(`Unexpected method "${method}"`);
5549
}
5650
}

benchmark/es/destructuring-bench.js

+9-11
Original file line numberDiff line numberDiff line change
@@ -8,45 +8,43 @@ const bench = common.createBenchmark(main, {
88
millions: [100]
99
});
1010

11-
function runSwapManual(n) {
11+
function runSwapManual(millions) {
1212
var x, y, r;
1313
bench.start();
14-
for (var i = 0; i < n; i++) {
14+
for (var i = 0; i < millions * 1e6; i++) {
1515
x = 1, y = 2;
1616
r = x;
1717
x = y;
1818
y = r;
1919
assert.strictEqual(x, 2);
2020
assert.strictEqual(y, 1);
2121
}
22-
bench.end(n / 1e6);
22+
bench.end(millions);
2323
}
2424

25-
function runSwapDestructured(n) {
25+
function runSwapDestructured(millions) {
2626
var x, y;
2727
bench.start();
28-
for (var i = 0; i < n; i++) {
28+
for (var i = 0; i < millions * 1e6; i++) {
2929
x = 1, y = 2;
3030
[x, y] = [y, x];
3131
assert.strictEqual(x, 2);
3232
assert.strictEqual(y, 1);
3333
}
34-
bench.end(n / 1e6);
34+
bench.end(millions);
3535
}
3636

3737
function main({ millions, method }) {
38-
const n = millions * 1e6;
39-
4038
switch (method) {
4139
case '':
4240
// Empty string falls through to next line as default, mostly for tests.
4341
case 'swap':
44-
runSwapManual(n);
42+
runSwapManual(millions);
4543
break;
4644
case 'destructure':
47-
runSwapDestructured(n);
45+
runSwapDestructured(millions);
4846
break;
4947
default:
50-
throw new Error('Unexpected method');
48+
throw new Error(`Unexpected method "${method}"`);
5149
}
5250
}

benchmark/es/destructuring-object-bench.js

+9-11
Original file line numberDiff line numberDiff line change
@@ -7,45 +7,43 @@ const bench = common.createBenchmark(main, {
77
millions: [100]
88
});
99

10-
function runNormal(n) {
10+
function runNormal(millions) {
1111
var i = 0;
1212
const o = { x: 0, y: 1 };
1313
bench.start();
14-
for (; i < n; i++) {
14+
for (; i < millions * 1e6; i++) {
1515
/* eslint-disable no-unused-vars */
1616
const x = o.x;
1717
const y = o.y;
1818
const r = o.r || 2;
1919
/* eslint-enable no-unused-vars */
2020
}
21-
bench.end(n / 1e6);
21+
bench.end(millions);
2222
}
2323

24-
function runDestructured(n) {
24+
function runDestructured(millions) {
2525
var i = 0;
2626
const o = { x: 0, y: 1 };
2727
bench.start();
28-
for (; i < n; i++) {
28+
for (; i < millions * 1e6; i++) {
2929
/* eslint-disable no-unused-vars */
3030
const { x, y, r = 2 } = o;
3131
/* eslint-enable no-unused-vars */
3232
}
33-
bench.end(n / 1e6);
33+
bench.end(millions);
3434
}
3535

3636
function main({ millions, method }) {
37-
const n = millions * 1e6;
38-
3937
switch (method) {
4038
case '':
4139
// Empty string falls through to next line as default, mostly for tests.
4240
case 'normal':
43-
runNormal(n);
41+
runNormal(millions);
4442
break;
4543
case 'destructureObject':
46-
runDestructured(n);
44+
runDestructured(millions);
4745
break;
4846
default:
49-
throw new Error('Unexpected method');
47+
throw new Error(`Unexpected method "${method}"`);
5048
}
5149
}

benchmark/es/foreach-bench.js

+19-24
Original file line numberDiff line numberDiff line change
@@ -8,56 +8,51 @@ const bench = common.createBenchmark(main, {
88
millions: [5]
99
});
1010

11-
function useFor(n, items, count) {
12-
var i, j;
11+
function useFor(millions, items, count) {
1312
bench.start();
14-
for (i = 0; i < n; i++) {
15-
for (j = 0; j < count; j++) {
13+
for (var i = 0; i < millions * 1e6; i++) {
14+
for (var j = 0; j < count; j++) {
1615
/* eslint-disable no-unused-vars */
1716
const item = items[j];
1817
/* esline-enable no-unused-vars */
1918
}
2019
}
21-
bench.end(n / 1e6);
20+
bench.end(millions);
2221
}
2322

24-
function useForOf(n, items) {
25-
var i, item;
23+
function useForOf(millions, items) {
24+
var item;
2625
bench.start();
27-
for (i = 0; i < n; i++) {
26+
for (var i = 0; i < millions * 1e6; i++) {
2827
for (item of items) {}
2928
}
30-
bench.end(n / 1e6);
29+
bench.end(millions);
3130
}
3231

33-
function useForIn(n, items) {
34-
var i, j, item;
32+
function useForIn(millions, items) {
3533
bench.start();
36-
for (i = 0; i < n; i++) {
37-
for (j in items) {
34+
for (var i = 0; i < millions * 1e6; i++) {
35+
for (var j in items) {
3836
/* eslint-disable no-unused-vars */
39-
item = items[j];
37+
const item = items[j];
4038
/* esline-enable no-unused-vars */
4139
}
4240
}
43-
bench.end(n / 1e6);
41+
bench.end(millions);
4442
}
4543

46-
function useForEach(n, items) {
47-
var i;
44+
function useForEach(millions, items) {
4845
bench.start();
49-
for (i = 0; i < n; i++) {
46+
for (var i = 0; i < millions * 1e6; i++) {
5047
items.forEach((item) => {});
5148
}
52-
bench.end(n / 1e6);
49+
bench.end(millions);
5350
}
5451

5552
function main({ millions, count, method }) {
56-
const n = millions * 1e6;
5753
const items = new Array(count);
58-
var i;
5954
var fn;
60-
for (i = 0; i < count; i++)
55+
for (var i = 0; i < count; i++)
6156
items[i] = i;
6257

6358
switch (method) {
@@ -76,7 +71,7 @@ function main({ millions, count, method }) {
7671
fn = useForEach;
7772
break;
7873
default:
79-
throw new Error('Unexpected method');
74+
throw new Error(`Unexpected method "${method}"`);
8075
}
81-
fn(n, items, count);
76+
fn(millions, items, count);
8277
}

benchmark/es/map-bench.js

+25-33
Original file line numberDiff line numberDiff line change
@@ -11,63 +11,59 @@ const bench = common.createBenchmark(main, {
1111
millions: [1]
1212
});
1313

14-
function runObject(n) {
14+
function runObject(millions) {
1515
const m = {};
16-
var i = 0;
1716
bench.start();
18-
for (; i < n; i++) {
17+
for (var i = 0; i < millions * 1e6; i++) {
1918
m[`i${i}`] = i;
2019
m[`s${i}`] = String(i);
2120
assert.strictEqual(String(m[`i${i}`]), m[`s${i}`]);
2221
m[`i${i}`] = undefined;
2322
m[`s${i}`] = undefined;
2423
}
25-
bench.end(n / 1e6);
24+
bench.end(millions);
2625
}
2726

28-
function runNullProtoObject(n) {
27+
function runNullProtoObject(millions) {
2928
const m = Object.create(null);
30-
var i = 0;
3129
bench.start();
32-
for (; i < n; i++) {
30+
for (var i = 0; i < millions * 1e6; i++) {
3331
m[`i${i}`] = i;
3432
m[`s${i}`] = String(i);
3533
assert.strictEqual(String(m[`i${i}`]), m[`s${i}`]);
3634
m[`i${i}`] = undefined;
3735
m[`s${i}`] = undefined;
3836
}
39-
bench.end(n / 1e6);
37+
bench.end(millions);
4038
}
4139

42-
function runNullProtoLiteralObject(n) {
40+
function runNullProtoLiteralObject(millions) {
4341
const m = { __proto__: null };
44-
var i = 0;
4542
bench.start();
46-
for (; i < n; i++) {
43+
for (var i = 0; i < millions * 1e6; i++) {
4744
m[`i${i}`] = i;
4845
m[`s${i}`] = String(i);
4946
assert.strictEqual(String(m[`i${i}`]), m[`s${i}`]);
5047
m[`i${i}`] = undefined;
5148
m[`s${i}`] = undefined;
5249
}
53-
bench.end(n / 1e6);
50+
bench.end(millions);
5451
}
5552

5653
function StorageObject() {}
5754
StorageObject.prototype = Object.create(null);
5855

59-
function runStorageObject(n) {
56+
function runStorageObject(millions) {
6057
const m = new StorageObject();
61-
var i = 0;
6258
bench.start();
63-
for (; i < n; i++) {
59+
for (var i = 0; i < millions * 1e6; i++) {
6460
m[`i${i}`] = i;
6561
m[`s${i}`] = String(i);
6662
assert.strictEqual(String(m[`i${i}`]), m[`s${i}`]);
6763
m[`i${i}`] = undefined;
6864
m[`s${i}`] = undefined;
6965
}
70-
bench.end(n / 1e6);
66+
bench.end(millions);
7167
}
7268

7369
function fakeMap() {
@@ -80,59 +76,55 @@ function fakeMap() {
8076
};
8177
}
8278

83-
function runFakeMap(n) {
79+
function runFakeMap(millions) {
8480
const m = fakeMap();
85-
var i = 0;
8681
bench.start();
87-
for (; i < n; i++) {
82+
for (var i = 0; i < millions * 1e6; i++) {
8883
m.set(`i${i}`, i);
8984
m.set(`s${i}`, String(i));
9085
assert.strictEqual(String(m.get(`i${i}`)), m.get(`s${i}`));
9186
m.set(`i${i}`, undefined);
9287
m.set(`s${i}`, undefined);
9388
}
94-
bench.end(n / 1e6);
89+
bench.end(millions);
9590
}
9691

97-
function runMap(n) {
92+
function runMap(millions) {
9893
const m = new Map();
99-
var i = 0;
10094
bench.start();
101-
for (; i < n; i++) {
95+
for (var i = 0; i < millions * 1e6; i++) {
10296
m.set(`i${i}`, i);
10397
m.set(`s${i}`, String(i));
10498
assert.strictEqual(String(m.get(`i${i}`)), m.get(`s${i}`));
10599
m.set(`i${i}`, undefined);
106100
m.set(`s${i}`, undefined);
107101
}
108-
bench.end(n / 1e6);
102+
bench.end(millions);
109103
}
110104

111105
function main({ millions, method }) {
112-
const n = millions * 1e6;
113-
114106
switch (method) {
115107
case '':
116108
// Empty string falls through to next line as default, mostly for tests.
117109
case 'object':
118-
runObject(n);
110+
runObject(millions);
119111
break;
120112
case 'nullProtoObject':
121-
runNullProtoObject(n);
113+
runNullProtoObject(millions);
122114
break;
123115
case 'nullProtoLiteralObject':
124-
runNullProtoLiteralObject(n);
116+
runNullProtoLiteralObject(millions);
125117
break;
126118
case 'storageObject':
127-
runStorageObject(n);
119+
runStorageObject(millions);
128120
break;
129121
case 'fakeMap':
130-
runFakeMap(n);
122+
runFakeMap(millions);
131123
break;
132124
case 'map':
133-
runMap(n);
125+
runMap(millions);
134126
break;
135127
default:
136-
throw new Error('Unexpected method');
128+
throw new Error(`Unexpected method "${method}"`);
137129
}
138130
}

0 commit comments

Comments
 (0)