- copyBytesFrom: calculate byte offsets directly instead of
slicing into an intermediate typed array
- toString('hex'): use V8 Uint8Array.prototype.toHex() builtin
- fill: add single-char ASCII fast path
- indexOf: use indexOfString directly for ASCII encoding
- swap16/32/64: add V8 Fast API functions
PR-URL: https://github.com/nodejs/node/pull/61871
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
32 lines
639 B
JavaScript
32 lines
639 B
JavaScript
'use strict';
|
|
const common = require('../common.js');
|
|
|
|
const bench = common.createBenchmark(main, {
|
|
type: [
|
|
'fill(0)',
|
|
'fill("")',
|
|
'fill(100)',
|
|
'fill(400)',
|
|
'fill("t")',
|
|
'fill("test")',
|
|
'fill("t", "utf8")',
|
|
'fill("t", "ascii")',
|
|
'fill("t", 0, "utf8")',
|
|
'fill("t", 0)',
|
|
'fill(Buffer.alloc(1), 0)',
|
|
],
|
|
size: [2 ** 13, 2 ** 16],
|
|
n: [2e4],
|
|
});
|
|
|
|
function main({ n, type, size }) {
|
|
const buffer = Buffer.allocUnsafe(size);
|
|
const testFunction = new Function('b', `
|
|
for (var i = 0; i < ${n}; i++) {
|
|
b.${type};
|
|
}
|
|
`);
|
|
bench.start();
|
|
testFunction(buffer);
|
|
bench.end(n);
|
|
}
|