Skip to content

Commit 707f621

Browse files
BridgeARMayaLekova
authored andcommitted
benchmark: (buffers) use destructuring
PR-URL: nodejs#18250 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent 78d4690 commit 707f621

23 files changed

+57
-108
lines changed

benchmark/buffers/buffer-base64-decode-wrapped.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ const bench = common.createBenchmark(main, {
66
n: [32],
77
});
88

9-
function main(conf) {
10-
const n = +conf.n;
9+
function main({ n }) {
1110
const charsPerLine = 76;
1211
const linesCount = 8 << 16;
1312
const bytesCount = charsPerLine * linesCount / 4 * 3;

benchmark/buffers/buffer-base64-decode.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ const bench = common.createBenchmark(main, {
66
n: [32],
77
});
88

9-
function main(conf) {
10-
const n = +conf.n;
9+
function main({ n }) {
1110
const s = 'abcd'.repeat(8 << 20);
1211
// eslint-disable-next-line no-unescaped-regexp-dot
1312
s.match(/./); // Flatten string.

benchmark/buffers/buffer-base64-encode.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,7 @@ const bench = common.createBenchmark(main, {
2727
n: [32]
2828
});
2929

30-
function main(conf) {
31-
const n = +conf.n;
32-
const len = +conf.len;
30+
function main({ n, len }) {
3331
const b = Buffer.allocUnsafe(len);
3432
let s = '';
3533
let i;

benchmark/buffers/buffer-bytelength.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@ const chars = [
1515
'𠜎𠜱𠝹𠱓𠱸𠲖𠳏𠳕𠴕𠵼𠵿𠸎𠸏𠹷𠺝𠺢' // 4 bytes
1616
];
1717

18-
function main(conf) {
19-
const n = conf.n | 0;
20-
const len = conf.len | 0;
21-
const encoding = conf.encoding;
22-
18+
function main({ n, len, encoding }) {
2319
var strings = [];
2420
var results;
2521
if (encoding === 'buffer') {

benchmark/buffers/buffer-compare-instance-method.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@ const bench = common.createBenchmark(main, {
77
millions: [1]
88
});
99

10-
function main(conf) {
11-
const iter = (conf.millions >>> 0) * 1e6;
12-
const size = (conf.size >>> 0);
13-
const args = (conf.args >>> 0);
10+
function main({ millions, size, args }) {
11+
const iter = millions * 1e6;
1412
const b0 = Buffer.alloc(size, 'a');
1513
const b1 = Buffer.alloc(size, 'a');
1614
const b0Len = b0.length;

benchmark/buffers/buffer-compare-offset.js

+7-9
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,11 @@ function compareUsingOffset(b0, b1, len, iter) {
2323
bench.end(iter / 1e6);
2424
}
2525

26-
function main(conf) {
27-
const iter = (conf.millions >>> 0) * 1e6;
28-
const size = (conf.size >>> 0);
29-
const method =
30-
conf.method === 'slice' ? compareUsingSlice : compareUsingOffset;
31-
method(Buffer.alloc(size, 'a'),
32-
Buffer.alloc(size, 'b'),
33-
size >> 1,
34-
iter);
26+
function main({ millions, size, method }) {
27+
const iter = millions * 1e6;
28+
const fn = method === 'slice' ? compareUsingSlice : compareUsingOffset;
29+
fn(Buffer.alloc(size, 'a'),
30+
Buffer.alloc(size, 'b'),
31+
size >> 1,
32+
iter);
3533
}

benchmark/buffers/buffer-compare.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,8 @@ const bench = common.createBenchmark(main, {
2727
millions: [1]
2828
});
2929

30-
function main(conf) {
31-
const iter = (conf.millions >>> 0) * 1e6;
32-
const size = (conf.size >>> 0);
30+
function main({ millions, size }) {
31+
const iter = millions * 1e6;
3332
const b0 = Buffer.alloc(size, 'a');
3433
const b1 = Buffer.alloc(size, 'a');
3534

benchmark/buffers/buffer-concat.js

+3-7
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,11 @@ const bench = common.createBenchmark(main, {
88
n: [1024]
99
});
1010

11-
function main(conf) {
12-
const n = +conf.n;
13-
const size = +conf.pieceSize;
14-
const pieces = +conf.pieces;
15-
11+
function main({ n, pieces, pieceSize, withTotalLength }) {
1612
const list = new Array(pieces);
17-
list.fill(Buffer.allocUnsafe(size));
13+
list.fill(Buffer.allocUnsafe(pieceSize));
1814

19-
const totalLength = conf.withTotalLength ? pieces * size : undefined;
15+
const totalLength = withTotalLength ? pieces * pieceSize : undefined;
2016

2117
bench.start();
2218
for (var i = 0; i < n * 1024; i++) {

benchmark/buffers/buffer-creation.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ const bench = common.createBenchmark(main, {
1515
n: [1024]
1616
});
1717

18-
function main(conf) {
19-
const len = +conf.len;
20-
const n = +conf.n;
21-
switch (conf.type) {
18+
function main({ len, n, type }) {
19+
switch (type) {
2220
case '':
2321
case 'fast-alloc':
2422
bench.start();

benchmark/buffers/buffer-from.js

+2-5
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,7 @@ const bench = common.createBenchmark(main, {
1818
n: [2048]
1919
});
2020

21-
function main(conf) {
22-
const len = +conf.len;
23-
const n = +conf.n;
24-
21+
function main({ len, n, source }) {
2522
const array = new Array(len).fill(42);
2623
const arrayBuf = new ArrayBuffer(len);
2724
const str = 'a'.repeat(len);
@@ -31,7 +28,7 @@ function main(conf) {
3128

3229
var i;
3330

34-
switch (conf.source) {
31+
switch (source) {
3532
case 'array':
3633
bench.start();
3734
for (i = 0; i < n * 1024; i++) {

benchmark/buffers/buffer-hex.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ const bench = common.createBenchmark(main, {
77
n: [1e7]
88
});
99

10-
function main(conf) {
11-
const len = conf.len | 0;
12-
const n = conf.n | 0;
10+
function main({ len, n }) {
1311
const buf = Buffer.alloc(len);
1412

1513
for (let i = 0; i < buf.length; i++)

benchmark/buffers/buffer-indexof-number.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,14 @@ const bench = common.createBenchmark(main, {
88
n: [1e7]
99
});
1010

11-
function main(conf) {
12-
const n = +conf.n;
13-
const search = +conf.value;
11+
function main({ n, value }) {
1412
const aliceBuffer = fs.readFileSync(
1513
path.resolve(__dirname, '../fixtures/alice.html')
1614
);
1715

1816
bench.start();
1917
for (var i = 0; i < n; i++) {
20-
aliceBuffer.indexOf(search, 0, undefined);
18+
aliceBuffer.indexOf(value, 0, undefined);
2119
}
2220
bench.end(n);
2321
}

benchmark/buffers/buffer-indexof.js

+3-6
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,13 @@ const bench = common.createBenchmark(main, {
2525
search: searchStrings,
2626
encoding: ['undefined', 'utf8', 'ucs2', 'binary'],
2727
type: ['buffer', 'string'],
28-
iter: [1]
28+
iter: [100000]
2929
});
3030

31-
function main(conf) {
32-
const iter = (conf.iter) * 100000;
31+
function main({ iter, search, encoding, type }) {
3332
var aliceBuffer = fs.readFileSync(
3433
path.resolve(__dirname, '../fixtures/alice.html')
3534
);
36-
var search = conf.search;
37-
var encoding = conf.encoding;
3835

3936
if (encoding === 'undefined') {
4037
encoding = undefined;
@@ -44,7 +41,7 @@ function main(conf) {
4441
aliceBuffer = Buffer.from(aliceBuffer.toString(), encoding);
4542
}
4643

47-
if (conf.type === 'buffer') {
44+
if (type === 'buffer') {
4845
search = Buffer.from(Buffer.from(search).toString(), encoding);
4946
}
5047

benchmark/buffers/buffer-iterate.js

+4-7
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,11 @@ const methods = {
1616
'iterator': benchIterator
1717
};
1818

19-
function main(conf) {
20-
const len = +conf.size;
21-
const clazz = conf.type === 'fast' ? Buffer : SlowBuffer;
22-
const buffer = new clazz(len);
19+
function main({ size, type, method, n }) {
20+
const clazz = type === 'fast' ? Buffer : SlowBuffer;
21+
const buffer = new clazz(size);
2322
buffer.fill(0);
24-
25-
const method = conf.method || 'for';
26-
methods[method](buffer, conf.n);
23+
methods[method || 'for'](buffer, n);
2724
}
2825

2926

benchmark/buffers/buffer-read.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,12 @@ const bench = common.createBenchmark(main, {
2525
millions: [1]
2626
});
2727

28-
function main(conf) {
29-
const noAssert = conf.noAssert === 'true';
30-
const len = +conf.millions * 1e6;
31-
const clazz = conf.buf === 'fast' ? Buffer : require('buffer').SlowBuffer;
28+
function main({ noAssert, millions, buf, type }) {
29+
noAssert = noAssert === 'true';
30+
const len = millions * 1e6;
31+
const clazz = buf === 'fast' ? Buffer : require('buffer').SlowBuffer;
3232
const buff = new clazz(8);
33-
const type = conf.type || 'UInt8';
34-
const fn = `read${type}`;
33+
const fn = `read${type || 'UInt8'}`;
3534

3635
buff.writeDoubleLE(0, 0, noAssert);
3736
const testFunction = new Function('buff', `

benchmark/buffers/buffer-slice.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ const bench = common.createBenchmark(main, {
1010
const buf = Buffer.allocUnsafe(1024);
1111
const slowBuf = new SlowBuffer(1024);
1212

13-
function main(conf) {
14-
const n = +conf.n;
15-
const b = conf.type === 'fast' ? buf : slowBuf;
13+
function main({ n, type }) {
14+
const b = type === 'fast' ? buf : slowBuf;
1615
bench.start();
1716
for (var i = 0; i < n * 1024; i++) {
1817
b.slice(10, 256);

benchmark/buffers/buffer-swap.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,9 @@ function genMethod(method) {
7272
return (new Function(fnString))();
7373
}
7474

75-
function main(conf) {
76-
const method = conf.method || 'swap16';
77-
const len = conf.len | 0;
78-
const n = conf.n | 0;
79-
const aligned = conf.aligned || 'true';
75+
function main({ method, len, n, aligned = 'true' }) {
8076
const buf = createBuffer(len, aligned === 'true');
81-
const bufferSwap = genMethod(method);
77+
const bufferSwap = genMethod(method || 'swap16');
8278

8379
bufferSwap(n, buf);
8480
bench.start();

benchmark/buffers/buffer-tojson.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ const bench = common.createBenchmark(main, {
77
len: [0, 10, 256, 4 * 1024]
88
});
99

10-
function main(conf) {
11-
const n = +conf.n;
12-
const buf = Buffer.allocUnsafe(+conf.len);
10+
function main({ n, len }) {
11+
const buf = Buffer.allocUnsafe(len);
1312

1413
bench.start();
1514
for (var i = 0; i < n; ++i)

benchmark/buffers/buffer-tostring.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@ const bench = common.createBenchmark(main, {
99
n: [1e7]
1010
});
1111

12-
function main(conf) {
13-
var encoding = conf.encoding;
14-
const args = conf.args | 0;
15-
const len = conf.len | 0;
16-
const n = conf.n | 0;
12+
function main({ encoding, args, len, n }) {
1713
const buf = Buffer.alloc(len, 42);
1814

1915
if (encoding.length === 0)

benchmark/buffers/buffer-write-string.js

+1-6
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,7 @@ const bench = common.createBenchmark(main, {
1010
n: [1e7]
1111
});
1212

13-
function main(conf) {
14-
const len = +conf.len;
15-
const n = +conf.n;
16-
const encoding = conf.encoding;
17-
const args = conf.args;
18-
13+
function main({ len, n, encoding, args }) {
1914
const string = 'a'.repeat(len);
2015
const buf = Buffer.allocUnsafe(len);
2116

benchmark/buffers/buffer-write.js

+6-8
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,11 @@ const mod = {
4545
writeUInt32LE: UINT32
4646
};
4747

48-
function main(conf) {
49-
const noAssert = conf.noAssert === 'true';
50-
const len = +conf.millions * 1e6;
51-
const clazz = conf.buf === 'fast' ? Buffer : require('buffer').SlowBuffer;
48+
function main({ noAssert, millions, buf, type }) {
49+
const len = millions * 1e6;
50+
const clazz = buf === 'fast' ? Buffer : require('buffer').SlowBuffer;
5251
const buff = new clazz(8);
53-
const type = conf.type || 'UInt8';
54-
const fn = `write${type}`;
52+
const fn = `write${type || 'UInt8'}`;
5553

5654
if (/Int/.test(fn))
5755
benchInt(buff, fn, len, noAssert);
@@ -63,7 +61,7 @@ function benchInt(buff, fn, len, noAssert) {
6361
const m = mod[fn];
6462
const testFunction = new Function('buff', `
6563
for (var i = 0; i !== ${len}; i++) {
66-
buff.${fn}(i & ${m}, 0, ${JSON.stringify(noAssert)});
64+
buff.${fn}(i & ${m}, 0, ${noAssert});
6765
}
6866
`);
6967
bench.start();
@@ -74,7 +72,7 @@ function benchInt(buff, fn, len, noAssert) {
7472
function benchFloat(buff, fn, len, noAssert) {
7573
const testFunction = new Function('buff', `
7674
for (var i = 0; i !== ${len}; i++) {
77-
buff.${fn}(i, 0, ${JSON.stringify(noAssert)});
75+
buff.${fn}(i, 0, ${noAssert});
7876
}
7977
`);
8078
bench.start();

benchmark/buffers/buffer_zero.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,12 @@ const bench = common.createBenchmark(main, {
1010
const zeroBuffer = Buffer.alloc(0);
1111
const zeroString = '';
1212

13-
function main(conf) {
14-
const n = +conf.n;
13+
function main({ n, type }) {
1514
bench.start();
1615

17-
if (conf.type === 'buffer')
16+
if (type === 'buffer')
1817
for (let i = 0; i < n * 1024; i++) Buffer.from(zeroBuffer);
19-
else if (conf.type === 'string')
18+
else if (type === 'string')
2019
for (let i = 0; i < n * 1024; i++) Buffer.from(zeroString);
2120

2221
bench.end(n);

benchmark/buffers/dataview-set.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ const mod = {
3939
setUint32: UINT32
4040
};
4141

42-
function main(conf) {
43-
const len = +conf.millions * 1e6;
42+
function main({ millions, type }) {
43+
type = type || 'Uint8';
44+
const len = millions * 1e6;
4445
const ab = new ArrayBuffer(8);
4546
const dv = new DataView(ab, 0, 8);
46-
const type = conf.type || 'Uint8';
4747
const le = /LE$/.test(type);
4848
const fn = `set${type.replace(/[LB]E$/, '')}`;
4949

0 commit comments

Comments
 (0)