Browse Source

benchmark: allow compare via fine-grained filters

Before this commit, only benchmark targets defined in Makefile could
be used. This commit allows execution of common.js directly and
passing of filter arguments directly, allowing you to run either a
subset of benchmarks or a single specific benchmark for comparison.

PR-URL: https://github.com/iojs/io.js/pull/711
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
v1.8.0-commit
Brian White 10 years ago
committed by cjihrig
parent
commit
e0730eeaa5
  1. 17
      benchmark/compare.js

17
benchmark/compare.js

@ -1,10 +1,12 @@
var usage = 'node benchmark/compare.js ' + var usage = 'node benchmark/compare.js ' +
'<node-binary1> <node-binary2> ' + '<node-binary1> <node-binary2> ' +
'[--html] [--red|-r] [--green|-g]'; '[--html] [--red|-r] [--green|-g] ' +
'[-- <type> [testFilter]]';
var show = 'both'; var show = 'both';
var nodes = []; var nodes = [];
var html = false; var html = false;
var benchmarks;
for (var i = 2; i < process.argv.length; i++) { for (var i = 2; i < process.argv.length; i++) {
var arg = process.argv[i]; var arg = process.argv[i];
@ -21,7 +23,14 @@ for (var i = 2; i < process.argv.length; i++) {
case '-h': case '-?': case '--help': case '-h': case '-?': case '--help':
console.log(usage); console.log(usage);
process.exit(0); process.exit(0);
break;
case '--':
benchmarks = [];
break;
default: default:
if (Array.isArray(benchmarks))
benchmarks.push(arg);
else
nodes.push(arg); nodes.push(arg);
break; break;
} }
@ -65,7 +74,11 @@ function run() {
env.NODE = node; env.NODE = node;
var out = ''; var out = '';
var child = spawn('make', [runBench], { env: env }); var child;
if (Array.isArray(benchmarks) && benchmarks.length)
child = spawn(node, ['benchmark/common.js'].concat(benchmarks), { env: env });
else
child = spawn('make', [runBench], { env: env });
child.stdout.setEncoding('utf8'); child.stdout.setEncoding('utf8');
child.stdout.on('data', function(c) { child.stdout.on('data', function(c) {
out += c; out += c;

Loading…
Cancel
Save