mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
038a1a489d
So far the benchmarks created a highly specialized function which would inline exactly to the input. This changes it to provide a more realistic view to actual input by changing the input on each iteration. That prevents the function to be to specific. It also reduces the number of iterations the benchmarks are run to reduce the overall runtime. A microbenchmark should already show a significant difference with lower iterations, otherwise the significance for real world applications is only limited. PR-URL: https://github.com/nodejs/node/pull/26359 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
28 lines
532 B
JavaScript
28 lines
532 B
JavaScript
'use strict';
|
|
const common = require('../common.js');
|
|
const { posix } = require('path');
|
|
|
|
const bench = common.createBenchmark(main, {
|
|
path: [
|
|
'',
|
|
'/',
|
|
'/foo',
|
|
'foo/.bar.baz',
|
|
'index.html',
|
|
'index',
|
|
'foo/bar/..baz.quux',
|
|
'foo/bar/...baz.quux',
|
|
'/foo/bar/baz/asdf/quux',
|
|
'/foo/bar/baz/asdf/quux.foobarbazasdfquux',
|
|
],
|
|
n: [1e5]
|
|
});
|
|
|
|
function main({ n, path }) {
|
|
bench.start();
|
|
for (var i = 0; i < n; i++) {
|
|
posix.extname(i % 3 === 0 ? `${path}${i}` : path);
|
|
}
|
|
bench.end(n);
|
|
}
|