Skip to content

Commit

Permalink
benchmark: add default configs to buffer benchmark
Browse files Browse the repository at this point in the history
Add default values to use for `type` and `method` in `buffer` benchmarks
when the provided configuration value is an empty string. This is
primarily useful for testing, so the test can request a single iteration
without having to worry about providing different valid values for the
different benchmarks.

While making this change, some `var` instances in immediately
surrounding code were changed to `const`. In some cases, `var` had been
preserved so that the benchmarks would continue to run in versions of
Node.js prior to 4.0.0. However, now that `const` has been introduced
into the benchmark `common` module, the benchmarks will no longer run
with those versions of Node.js anyway.

PR-URL: #15175
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com
  • Loading branch information
Trott authored and MylesBorins committed Sep 12, 2017
1 parent ba5a697 commit 8d11220
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 21 deletions.
1 change: 1 addition & 0 deletions benchmark/buffers/buffer-creation.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ function main(conf) {
const len = +conf.len;
const n = +conf.n;
switch (conf.type) {
case '':
case 'fast-alloc':
bench.start();
for (let i = 0; i < n * 1024; i++) {
Expand Down
9 changes: 5 additions & 4 deletions benchmark/buffers/buffer-iterate.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,13 @@ var methods = {
};

function main(conf) {
var len = +conf.size;
var clazz = conf.type === 'fast' ? Buffer : SlowBuffer;
var buffer = new clazz(len);
const len = +conf.size;
const clazz = conf.type === 'fast' ? Buffer : SlowBuffer;
const buffer = new clazz(len);
buffer.fill(0);

methods[conf.method](buffer, conf.n);
const method = conf.method || 'for';
methods[method](buffer, conf.n);
}


Expand Down
13 changes: 7 additions & 6 deletions benchmark/buffers/buffer-read.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,15 @@ var bench = common.createBenchmark(main, {
});

function main(conf) {
var noAssert = conf.noAssert === 'true';
var len = +conf.millions * 1e6;
var clazz = conf.buf === 'fast' ? Buffer : require('buffer').SlowBuffer;
var buff = new clazz(8);
var fn = `read${conf.type}`;
const noAssert = conf.noAssert === 'true';
const len = +conf.millions * 1e6;
const clazz = conf.buf === 'fast' ? Buffer : require('buffer').SlowBuffer;
const buff = new clazz(8);
const type = conf.type || 'UInt8';
const fn = `read${type}`;

buff.writeDoubleLE(0, 0, noAssert);
var testFunction = new Function('buff', `
const testFunction = new Function('buff', `
for (var i = 0; i !== ${len}; i++) {
buff.${fn}(0, ${JSON.stringify(noAssert)});
}
Expand Down
2 changes: 1 addition & 1 deletion benchmark/buffers/buffer-swap.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ function genMethod(method) {
}

function main(conf) {
const method = conf.method;
const method = conf.method || 'swap16';
const len = conf.len | 0;
const n = conf.n | 0;
const aligned = conf.aligned || 'true';
Expand Down
11 changes: 6 additions & 5 deletions benchmark/buffers/buffer-write.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,12 @@ var mod = {
};

function main(conf) {
var noAssert = conf.noAssert === 'true';
var len = +conf.millions * 1e6;
var clazz = conf.buf === 'fast' ? Buffer : require('buffer').SlowBuffer;
var buff = new clazz(8);
var fn = `write${conf.type}`;
const noAssert = conf.noAssert === 'true';
const len = +conf.millions * 1e6;
const clazz = conf.buf === 'fast' ? Buffer : require('buffer').SlowBuffer;
const buff = new clazz(8);
const type = conf.type || 'UInt8';
const fn = `write${type}`;

if (/Int/.test(fn))
benchInt(buff, fn, len, noAssert);
Expand Down
11 changes: 6 additions & 5 deletions benchmark/buffers/dataview-set.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,12 @@ var mod = {
};

function main(conf) {
var len = +conf.millions * 1e6;
var ab = new ArrayBuffer(8);
var dv = new DataView(ab, 0, 8);
var le = /LE$/.test(conf.type);
var fn = `set${conf.type.replace(/[LB]E$/, '')}`;
const len = +conf.millions * 1e6;
const ab = new ArrayBuffer(8);
const dv = new DataView(ab, 0, 8);
const type = conf.type || 'Uint8';
const le = /LE$/.test(type);
const fn = `set${type.replace(/[LB]E$/, '')}`;

if (/int/i.test(fn))
benchInt(dv, fn, len, le);
Expand Down

0 comments on commit 8d11220

Please sign in to comment.