Skip to content

Commit

Permalink
benchmark: refactor to eliminate redeclared vars
Browse files Browse the repository at this point in the history
In order to comply with linting rules used in the rest of the code base,
eliminate redeclared variables. A conservative approach is used so as to
avoid unintentional performance issues (for example, as might be seen in
some situations when using `let` instead of `var`).

PR-URL: #5773
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
  • Loading branch information
Trott authored and Myles Borins committed Mar 21, 2016
1 parent 6dc49ae commit 4be2065
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 42 deletions.
7 changes: 4 additions & 3 deletions benchmark/buffers/buffer-base64-encode.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ function main(conf) {
var N = 64 * 1024 * 1024;
var b = Buffer(N);
var s = '';
for (var i = 0; i < 256; ++i) s += String.fromCharCode(i);
for (var i = 0; i < N; i += 256) b.write(s, i, 256, 'ascii');
var i;
for (i = 0; i < 256; ++i) s += String.fromCharCode(i);
for (i = 0; i < N; i += 256) b.write(s, i, 256, 'ascii');
bench.start();
for (var i = 0; i < 32; ++i) b.toString('base64');
for (i = 0; i < 32; ++i) b.toString('base64');
bench.end(64);
}
5 changes: 3 additions & 2 deletions benchmark/buffers/buffer-tostring.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@ function main(conf) {
const n = conf.n | 0;
const buf = Buffer(len).fill(42);

var i;
bench.start();
if (arg) {
for (var i = 0; i < n; i += 1)
for (i = 0; i < n; i += 1)
buf.toString('utf8');
} else {
for (var i = 0; i < n; i += 1)
for (i = 0; i < n; i += 1)
buf.toString();
}
bench.end(n);
Expand Down
21 changes: 11 additions & 10 deletions benchmark/compare.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,19 @@ for (var i = 2; i < process.argv.length; i++) {
}
}

var start, green, red, reset, end;
if (!html) {
var start = '';
var green = '\033[1;32m';
var red = '\033[1;31m';
var reset = '\033[m';
var end = '';
start = '';
green = '\u001b[1;32m';
red = '\u001b[1;31m';
reset = '\u001b[m';
end = '';
} else {
var start = '<pre style="background-color:#333;color:#eee">';
var green = '<span style="background-color:#0f0;color:#000">';
var red = '<span style="background-color:#f00;color:#fff">';
var reset = '</span>';
var end = '</pre>';
start = '<pre style="background-color:#333;color:#eee">';
green = '<span style="background-color:#0f0;color:#000">';
red = '<span style="background-color:#f00;color:#fff">';
reset = '</span>';
end = '</pre>';
}

var runBench = process.env.NODE_BENCH || 'bench';
Expand Down
9 changes: 5 additions & 4 deletions benchmark/crypto/cipher-stream.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,13 +85,14 @@ function streamWrite(alice, bob, message, encoding, writes) {

function legacyWrite(alice, bob, message, encoding, writes) {
var written = 0;
var enc, dec;
for (var i = 0; i < writes; i++) {
var enc = alice.update(message, encoding);
var dec = bob.update(enc);
enc = alice.update(message, encoding);
dec = bob.update(enc);
written += dec.length;
}
var enc = alice.final();
var dec = bob.update(enc);
enc = alice.final();
dec = bob.update(enc);
written += dec.length;
dec = bob.final();
written += dec.length;
Expand Down
7 changes: 4 additions & 3 deletions benchmark/events/ee-add-remove.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@ function main(conf) {
var ee = new events.EventEmitter();
var listeners = [];

for (var k = 0; k < 10; k += 1)
var k;
for (k = 0; k < 10; k += 1)
listeners.push(function() {});

bench.start();
for (var i = 0; i < n; i += 1) {
for (var k = listeners.length; --k >= 0; /* empty */)
for (k = listeners.length; --k >= 0; /* empty */)
ee.on('dummy', listeners[k]);
for (var k = listeners.length; --k >= 0; /* empty */)
for (k = listeners.length; --k >= 0; /* empty */)
ee.removeListener('dummy', listeners[k]);
}
bench.end(n);
Expand Down
5 changes: 3 additions & 2 deletions benchmark/fs-write-stream-throughput.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,13 @@ function parent() {
function runTest(dur, size, type) {
if (type !== 'string')
type = 'buffer';
var chunk;
switch (type) {
case 'string':
var chunk = new Array(size + 1).join('a');
chunk = new Array(size + 1).join('a');
break;
case 'buffer':
var chunk = new Buffer(size);
chunk = new Buffer(size);
chunk.fill('a');
break;
}
Expand Down
11 changes: 6 additions & 5 deletions benchmark/http_simple.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ var server = module.exports = http.createServer(function(req, res) {
var n_chunks = parseInt(commands[3], 10);
var status = 200;

var n, i;
if (command == 'bytes') {
var n = ~~arg;
n = ~~arg;
if (n <= 0)
throw new Error('bytes called with n <= 0');
if (storedBytes[n] === undefined) {
Expand All @@ -46,19 +47,19 @@ var server = module.exports = http.createServer(function(req, res) {
body = storedBytes[n];

} else if (command == 'buffer') {
var n = ~~arg;
n = ~~arg;
if (n <= 0)
throw new Error('buffer called with n <= 0');
if (storedBuffer[n] === undefined) {
storedBuffer[n] = new Buffer(n);
for (var i = 0; i < n; i++) {
for (i = 0; i < n; i++) {
storedBuffer[n][i] = 'C'.charCodeAt(0);
}
}
body = storedBuffer[n];

} else if (command == 'unicode') {
var n = ~~arg;
n = ~~arg;
if (n <= 0)
throw new Error('unicode called with n <= 0');
if (storedUnicode[n] === undefined) {
Expand Down Expand Up @@ -93,7 +94,7 @@ var server = module.exports = http.createServer(function(req, res) {
var len = body.length;
var step = Math.floor(len / n_chunks) || 1;

for (var i = 0, n = (n_chunks - 1); i < n; ++i) {
for (i = 0, n = (n_chunks - 1); i < n; ++i) {
res.write(body.slice(i * step, i * step + step));
}
res.end(body.slice((n_chunks - 1) * step));
Expand Down
15 changes: 8 additions & 7 deletions benchmark/http_simple_auto.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ var spawn = require('child_process').spawn;
var port = parseInt(process.env.PORT || 8000);

var fixed = '';
for (var i = 0; i < 20 * 1024; i++) {
var i;
for (i = 0; i < 20 * 1024; i++) {
fixed += 'C';
}

Expand All @@ -27,25 +28,25 @@ var server = http.createServer(function(req, res) {
var arg = commands[2];
var n_chunks = parseInt(commands[3], 10);
var status = 200;
var n;

if (command == 'bytes') {
var n = parseInt(arg, 10);
n = parseInt(arg, 10);
if (n <= 0)
throw new Error('bytes called with n <= 0');
if (stored[n] === undefined) {
stored[n] = '';
for (var i = 0; i < n; i++) {
for (i = 0; i < n; i++) {
stored[n] += 'C';
}
}
body = stored[n];

} else if (command == 'buffer') {
var n = parseInt(arg, 10);
n = parseInt(arg, 10);
if (n <= 0) throw new Error('bytes called with n <= 0');
if (storedBuffer[n] === undefined) {
storedBuffer[n] = new Buffer(n);
for (var i = 0; i < n; i++) {
for (i = 0; i < n; i++) {
storedBuffer[n][i] = 'C'.charCodeAt(0);
}
}
Expand Down Expand Up @@ -78,7 +79,7 @@ var server = http.createServer(function(req, res) {
var len = body.length;
var step = Math.floor(len / n_chunks) || 1;

for (var i = 0, n = (n_chunks - 1); i < n; ++i) {
for (i = 0, n = (n_chunks - 1); i < n; ++i) {
res.write(body.slice(i * step, i * step + step));
}
res.end(body.slice((n_chunks - 1) * step));
Expand Down
5 changes: 3 additions & 2 deletions benchmark/misc/string-decoder.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ function main(conf) {
var chunks = [];
var str = '';
var isBase64 = (encoding === 'base64-ascii' || encoding === 'base64-utf8');
var i;

if (encoding === 'ascii' || encoding === 'base64-ascii')
alpha = ASC_ALPHA;
Expand All @@ -31,7 +32,7 @@ function main(conf) {

var sd = new StringDecoder(isBase64 ? 'base64' : encoding);

for (var i = 0; i < inLen; ++i) {
for (i = 0; i < inLen; ++i) {
if (i > 0 && (i % chunkLen) === 0 && !isBase64) {
chunks.push(new Buffer(str, encoding));
str = '';
Expand All @@ -52,7 +53,7 @@ function main(conf) {
var nChunks = chunks.length;

bench.start();
for (var i = 0; i < n; ++i) {
for (i = 0; i < n; ++i) {
for (var j = 0; j < nChunks; ++j)
sd.write(chunks[j]);
}
Expand Down
16 changes: 12 additions & 4 deletions benchmark/querystring/querystring-parse.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,16 @@ function main(conf) {
v8.setFlagsFromString('--allow_natives_syntax');
eval('%OptimizeFunctionOnNextCall(querystring.parse)');

bench.start();
for (var i = 0; i < n; i += 1)
querystring.parse(input);
bench.end(n);
var i;
if (type !== 'multicharsep') {
bench.start();
for (i = 0; i < n; i += 1)
querystring.parse(input);
bench.end(n);
} else {
bench.start();
for (i = 0; i < n; i += 1)
querystring.parse(input, '&&&&&&&&&&');
bench.end(n);
}
}

0 comments on commit 4be2065

Please sign in to comment.