benchmark: refactor util benchmarks

This significantly reduces the benchmark runtime. It removes to many
variations that do not provide any benefit and reduces the iterations.

PR-URL: https://github.com/nodejs/node/pull/22503
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
This commit is contained in:
Ruben Bridgewater 2018-08-13 17:51:58 +02:00
parent af2e5f9522
commit de33a5aa6e
No known key found for this signature in database
GPG Key ID: F07496B3EB3C1762
9 changed files with 19 additions and 29 deletions

View File

@ -16,7 +16,7 @@ const inputs = {
};
const bench = common.createBenchmark(main, {
n: [4e6],
n: [1e5],
type: Object.keys(inputs)
});

View File

@ -4,8 +4,8 @@ const common = require('../common');
const util = require('util');
const bench = common.createBenchmark(main, {
n: [1e3],
len: [1e5],
n: [5e2],
len: [1e2, 1e5],
type: [
'denseArray',
'sparseArray',

View File

@ -3,7 +3,7 @@
const util = require('util');
const common = require('../common.js');
const bench = common.createBenchmark(main, { n: [1e6] });
const bench = common.createBenchmark(main, { n: [2e4] });
function main({ n }) {
const proxyA = new Proxy({}, { get: () => {} });

View File

@ -9,7 +9,7 @@ const opts = {
none: undefined
};
const bench = common.createBenchmark(main, {
n: [2e6],
n: [2e4],
method: [
'Object',
'Object_empty',
@ -81,7 +81,7 @@ function main({ method, n, option }) {
benchmark(n, new Error('error'), options);
break;
case 'Array':
benchmark(n, Array(20).fill().map((_, i) => i), options);
benchmark(n, Array(50).fill().map((_, i) => i), options);
break;
case 'TypedArray':
obj = new Uint8Array(Array(50).fill().map((_, i) => i));

View File

@ -5,26 +5,23 @@ const assert = require('assert');
const groupedInputs = {
group_common: ['undefined', 'utf8', 'utf-8', 'base64',
'binary', 'latin1', 'ucs-2'],
group_upper: ['UTF-8', 'UTF8', 'UCS2', 'UTF-16LE',
'UTF16LE', 'BASE64', 'UCS-2'],
group_uncommon: ['foo', '1', 'false', 'undefined', '[]', '{}'],
'binary', 'latin1', 'ucs2'],
group_upper: ['UTF-8', 'UTF8', 'UCS2',
'UTF16LE', 'BASE64', 'UCS2'],
group_uncommon: ['foo'],
group_misc: ['', 'utf16le', 'hex', 'HEX', 'BINARY']
};
const inputs = [
'',
'utf8', 'utf-8', 'UTF-8',
'UTF8', 'Utf8', 'uTf-8', 'utF-8',
'ucs2', 'UCS2', 'UcS2',
'ucs-2', 'UCS-2', 'UcS-2',
'utf16le', 'utf-16le', 'UTF-16LE', 'UTF16LE',
'', 'utf8', 'utf-8', 'UTF-8', 'UTF8', 'Utf8',
'ucs2', 'UCS2', 'utf16le', 'UTF16LE',
'binary', 'BINARY', 'latin1', 'base64', 'BASE64',
'hex', 'HEX', 'foo', '1', 'false', 'undefined', '[]', '{}'];
'hex', 'HEX', 'foo', 'undefined'
];
const bench = common.createBenchmark(main, {
input: inputs.concat(Object.keys(groupedInputs)),
n: [1e7]
n: [1e5]
}, {
flags: '--expose-internals'
});
@ -39,16 +36,8 @@ function getInput(input) {
return groupedInputs.group_uncommon;
case 'group_misc':
return groupedInputs.group_misc;
case '1':
return [1];
case 'false':
return [false];
case 'undefined':
return [undefined];
case '[]':
return [[]];
case '{}':
return [{}];
default:
return [input];
}

View File

@ -3,7 +3,7 @@
const common = require('../common');
const bench = common.createBenchmark(main, {
n: [1e6]
n: [1e5]
}, { flags: ['--expose-internals'] });
function main({ n, type }) {

View File

@ -3,7 +3,7 @@
const common = require('../common');
const bench = common.createBenchmark(main, {
n: [1e7],
n: [1e5],
pos: ['start', 'middle', 'end'],
size: [10, 100, 500],
}, { flags: ['--expose-internals'] });

View File

@ -29,7 +29,7 @@ const bench = common.createBenchmark(main, {
type: Object.keys(args),
version: ['native', 'js'],
argument: ['true', 'false-primitive', 'false-object'],
n: [5e6]
n: [1e5]
}, {
flags: ['--expose-internals']
});

View File

@ -13,5 +13,6 @@ runBenchmark('util',
'pos=start',
'size=1',
'type=',
'len=1',
'version=native'],
{ NODEJS_BENCHMARK_ZERO_ALLOWED: 1 });