Skip to content

Commit 3f37ed9

Browse files
Uzlopaktargos
authored andcommitted
benchmark: add benchmarks for encodings
PR-URL: #50348 Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
1 parent 5b453d4 commit 3f37ed9

6 files changed

+111
-3
lines changed

benchmark/buffers/buffer-base64-decode.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,15 @@ function main({ n, size }) {
1515
assert.strictEqual(s.length % 4, 0);
1616
const b = Buffer.allocUnsafe(encodedSize);
1717
b.write(s, 0, encodedSize, 'base64');
18+
19+
let tmp;
20+
1821
bench.start();
19-
for (let i = 0; i < n; i += 1) b.base64Write(s, 0, s.length);
22+
23+
for (let i = 0; i < n; i += 1)
24+
tmp = b.base64Write(s, 0, s.length);
25+
2026
bench.end(n);
27+
28+
assert.strictEqual(tmp, encodedSize);
2129
}

benchmark/buffers/buffer-base64-encode.js

+10-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
'use strict';
2323
const common = require('../common.js');
24+
const assert = require('assert');
2425

2526
const bench = common.createBenchmark(main, {
2627
len: [64 * 1024 * 1024],
@@ -35,7 +36,15 @@ function main({ n, len }) {
3536
let i;
3637
for (i = 0; i < 256; ++i) s += String.fromCharCode(i);
3738
for (i = 0; i < len; i += 256) b.write(s, i, 256, 'ascii');
39+
40+
let tmp;
41+
3842
bench.start();
39-
for (i = 0; i < n; ++i) b.toString('base64');
43+
44+
for (i = 0; i < n; ++i)
45+
tmp = b.toString('base64');
46+
4047
bench.end(n);
48+
49+
assert.strictEqual(typeof tmp, 'string');
4150
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
'use strict';
2+
const assert = require('assert');
3+
const common = require('../common.js');
4+
5+
const bench = common.createBenchmark(main, {
6+
n: [32],
7+
size: [8 << 20],
8+
});
9+
10+
function main({ n, size }) {
11+
const s = 'abcd'.repeat(size);
12+
const encodedSize = s.length * 3 / 4;
13+
// eslint-disable-next-line node-core/no-unescaped-regexp-dot
14+
s.match(/./); // Flatten string.
15+
assert.strictEqual(s.length % 4, 0);
16+
const b = Buffer.allocUnsafe(encodedSize);
17+
b.write(s, 0, encodedSize, 'base64url');
18+
19+
let tmp;
20+
21+
bench.start();
22+
23+
for (let i = 0; i < n; i += 1)
24+
tmp = b.base64Write(s, 0, s.length);
25+
26+
bench.end(n);
27+
28+
assert.strictEqual(tmp, encodedSize);
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
'use strict';
2+
const common = require('../common.js');
3+
const assert = require('assert');
4+
5+
const bench = common.createBenchmark(main, {
6+
len: [64 * 1024 * 1024],
7+
n: [32],
8+
}, {
9+
test: { len: 256 },
10+
});
11+
12+
function main({ n, len }) {
13+
const b = Buffer.allocUnsafe(len);
14+
let s = '';
15+
let i;
16+
for (i = 0; i < 256; ++i) s += String.fromCharCode(i);
17+
for (i = 0; i < len; i += 256) b.write(s, i, 256, 'ascii');
18+
19+
let tmp;
20+
21+
bench.start();
22+
23+
for (i = 0; i < n; ++i)
24+
tmp = b.toString('base64url');
25+
26+
bench.end(n);
27+
28+
assert.strictEqual(typeof tmp, 'string');
29+
}
+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
'use strict';
2+
3+
const common = require('../common.js');
4+
const assert = require('assert');
5+
6+
const bench = common.createBenchmark(main, {
7+
len: [64, 1024],
8+
n: [1e6],
9+
});
10+
11+
function main({ len, n }) {
12+
const buf = Buffer.alloc(len);
13+
14+
for (let i = 0; i < buf.length; i++)
15+
buf[i] = i & 0xff;
16+
17+
const plain = buf;
18+
19+
bench.start();
20+
21+
let tmp;
22+
23+
for (let i = 0; i < n; i += 1)
24+
tmp = plain.toString('hex');
25+
26+
bench.end(n);
27+
28+
assert.strictEqual(typeof tmp, 'string');
29+
}

benchmark/buffers/buffer-hex.js benchmark/buffers/buffer-hex-encode.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22

33
const common = require('../common.js');
4+
const assert = require('assert');
45

56
const bench = common.createBenchmark(main, {
67
len: [64, 1024],
@@ -14,11 +15,14 @@ function main({ len, n }) {
1415
buf[i] = i & 0xff;
1516

1617
const hex = buf.toString('hex');
18+
let tmp;
1719

1820
bench.start();
1921

2022
for (let i = 0; i < n; i += 1)
21-
Buffer.from(hex, 'hex');
23+
tmp = Buffer.from(hex, 'hex');
2224

2325
bench.end(n);
26+
27+
assert.strictEqual(typeof tmp, 'object');
2428
}

0 commit comments

Comments
 (0)