mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
benchmark: add benchmarks for encodings
PR-URL: https://github.com/nodejs/node/pull/50348 Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
This commit is contained in:
@@ -15,7 +15,15 @@ function main({ n, size }) {
|
||||
assert.strictEqual(s.length % 4, 0);
|
||||
const b = Buffer.allocUnsafe(encodedSize);
|
||||
b.write(s, 0, encodedSize, 'base64');
|
||||
|
||||
let tmp;
|
||||
|
||||
bench.start();
|
||||
for (let i = 0; i < n; i += 1) b.base64Write(s, 0, s.length);
|
||||
|
||||
for (let i = 0; i < n; i += 1)
|
||||
tmp = b.base64Write(s, 0, s.length);
|
||||
|
||||
bench.end(n);
|
||||
|
||||
assert.strictEqual(tmp, encodedSize);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
'use strict';
|
||||
const common = require('../common.js');
|
||||
const assert = require('assert');
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
len: [64 * 1024 * 1024],
|
||||
@@ -35,7 +36,15 @@ function main({ n, len }) {
|
||||
let i;
|
||||
for (i = 0; i < 256; ++i) s += String.fromCharCode(i);
|
||||
for (i = 0; i < len; i += 256) b.write(s, i, 256, 'ascii');
|
||||
|
||||
let tmp;
|
||||
|
||||
bench.start();
|
||||
for (i = 0; i < n; ++i) b.toString('base64');
|
||||
|
||||
for (i = 0; i < n; ++i)
|
||||
tmp = b.toString('base64');
|
||||
|
||||
bench.end(n);
|
||||
|
||||
assert.strictEqual(typeof tmp, 'string');
|
||||
}
|
||||
|
||||
29
benchmark/buffers/buffer-base64url-decode.js
Normal file
29
benchmark/buffers/buffer-base64url-decode.js
Normal file
@@ -0,0 +1,29 @@
|
||||
'use strict';
|
||||
const assert = require('assert');
|
||||
const common = require('../common.js');
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
n: [32],
|
||||
size: [8 << 20],
|
||||
});
|
||||
|
||||
function main({ n, size }) {
|
||||
const s = 'abcd'.repeat(size);
|
||||
const encodedSize = s.length * 3 / 4;
|
||||
// eslint-disable-next-line node-core/no-unescaped-regexp-dot
|
||||
s.match(/./); // Flatten string.
|
||||
assert.strictEqual(s.length % 4, 0);
|
||||
const b = Buffer.allocUnsafe(encodedSize);
|
||||
b.write(s, 0, encodedSize, 'base64url');
|
||||
|
||||
let tmp;
|
||||
|
||||
bench.start();
|
||||
|
||||
for (let i = 0; i < n; i += 1)
|
||||
tmp = b.base64Write(s, 0, s.length);
|
||||
|
||||
bench.end(n);
|
||||
|
||||
assert.strictEqual(tmp, encodedSize);
|
||||
}
|
||||
29
benchmark/buffers/buffer-base64url-encode.js
Normal file
29
benchmark/buffers/buffer-base64url-encode.js
Normal file
@@ -0,0 +1,29 @@
|
||||
'use strict';
|
||||
const common = require('../common.js');
|
||||
const assert = require('assert');
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
len: [64 * 1024 * 1024],
|
||||
n: [32],
|
||||
}, {
|
||||
test: { len: 256 },
|
||||
});
|
||||
|
||||
function main({ n, len }) {
|
||||
const b = Buffer.allocUnsafe(len);
|
||||
let s = '';
|
||||
let i;
|
||||
for (i = 0; i < 256; ++i) s += String.fromCharCode(i);
|
||||
for (i = 0; i < len; i += 256) b.write(s, i, 256, 'ascii');
|
||||
|
||||
let tmp;
|
||||
|
||||
bench.start();
|
||||
|
||||
for (i = 0; i < n; ++i)
|
||||
tmp = b.toString('base64url');
|
||||
|
||||
bench.end(n);
|
||||
|
||||
assert.strictEqual(typeof tmp, 'string');
|
||||
}
|
||||
29
benchmark/buffers/buffer-hex-decode.js
Normal file
29
benchmark/buffers/buffer-hex-decode.js
Normal file
@@ -0,0 +1,29 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common.js');
|
||||
const assert = require('assert');
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
len: [64, 1024],
|
||||
n: [1e6],
|
||||
});
|
||||
|
||||
function main({ len, n }) {
|
||||
const buf = Buffer.alloc(len);
|
||||
|
||||
for (let i = 0; i < buf.length; i++)
|
||||
buf[i] = i & 0xff;
|
||||
|
||||
const plain = buf;
|
||||
|
||||
bench.start();
|
||||
|
||||
let tmp;
|
||||
|
||||
for (let i = 0; i < n; i += 1)
|
||||
tmp = plain.toString('hex');
|
||||
|
||||
bench.end(n);
|
||||
|
||||
assert.strictEqual(typeof tmp, 'string');
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common.js');
|
||||
const assert = require('assert');
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
len: [64, 1024],
|
||||
@@ -14,11 +15,14 @@ function main({ len, n }) {
|
||||
buf[i] = i & 0xff;
|
||||
|
||||
const hex = buf.toString('hex');
|
||||
let tmp;
|
||||
|
||||
bench.start();
|
||||
|
||||
for (let i = 0; i < n; i += 1)
|
||||
Buffer.from(hex, 'hex');
|
||||
tmp = Buffer.from(hex, 'hex');
|
||||
|
||||
bench.end(n);
|
||||
|
||||
assert.strictEqual(typeof tmp, 'object');
|
||||
}
|
||||
Reference in New Issue
Block a user