mirror of
https://github.com/nodejs/node.git
synced 2025-05-15 17:23:43 +00:00

Currently the buffer benchmarks take significantly too long to complete. This drastically reduces the overall runtime by removing obsolete checked variations and reducing the iteration count. It also improves the benchmarks by removing the deprecated `new Buffer(size)` usage and some other small improvements. PR-URL: https://github.com/nodejs/node/pull/26418 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Peter Marshall <petermarshall@chromium.org> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
50 lines
1.0 KiB
JavaScript
50 lines
1.0 KiB
JavaScript
'use strict';
|
|
const common = require('../common.js');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const searchStrings = [
|
|
'@',
|
|
'SQ',
|
|
'--l',
|
|
'Alice',
|
|
'Gryphon',
|
|
'Ou est ma chatte?',
|
|
'found it very',
|
|
'neighbouring pool',
|
|
'aaaaaaaaaaaaaaaaa',
|
|
'venture to go near the house till she had brought herself down to',
|
|
'</i> to the Caterpillar',
|
|
];
|
|
|
|
const bench = common.createBenchmark(main, {
|
|
search: searchStrings,
|
|
encoding: ['utf8', 'ucs2'],
|
|
type: ['buffer', 'string'],
|
|
n: [5e4]
|
|
});
|
|
|
|
function main({ n, search, encoding, type }) {
|
|
var aliceBuffer = fs.readFileSync(
|
|
path.resolve(__dirname, '../fixtures/alice.html')
|
|
);
|
|
|
|
if (encoding === 'undefined') {
|
|
encoding = undefined;
|
|
}
|
|
|
|
if (encoding === 'ucs2') {
|
|
aliceBuffer = Buffer.from(aliceBuffer.toString(), encoding);
|
|
}
|
|
|
|
if (type === 'buffer') {
|
|
search = Buffer.from(Buffer.from(search).toString(), encoding);
|
|
}
|
|
|
|
bench.start();
|
|
for (var i = 0; i < n; i++) {
|
|
aliceBuffer.indexOf(search, 0, encoding);
|
|
}
|
|
bench.end(n);
|
|
}
|