summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--benchmark/child_process/child-process-read.js15
1 files changed, 12 insertions, 3 deletions
diff --git a/benchmark/child_process/child-process-read.js b/benchmark/child_process/child-process-read.js
index 6fce35410e..c1b834e431 100644
--- a/benchmark/child_process/child-process-read.js
+++ b/benchmark/child_process/child-process-read.js
@@ -1,6 +1,11 @@
'use strict';
const common = require('../common.js');
+
+// This benchmark uses `yes` to a create noisy child_processes with varying
+// output message lengths, and tries to read 8GB of output
+
const os = require('os');
+const child_process = require('child_process');
var messagesLength = [64, 256, 1024, 4096];
// Windows does not support that long arguments
@@ -12,7 +17,6 @@ const bench = common.createBenchmark(main, {
dur: [5]
});
-const spawn = require('child_process').spawn;
function main(conf) {
bench.start();
@@ -21,7 +25,7 @@ function main(conf) {
const msg = `"${'.'.repeat(len)}"`;
const options = { 'stdio': ['ignore', 'pipe', 'ignore'] };
- const child = spawn('yes', [msg], options);
+ const child = child_process.spawn('yes', [msg], options);
var bytes = 0;
child.stdout.on('data', function(msg) {
@@ -29,7 +33,12 @@ function main(conf) {
});
setTimeout(function() {
- child.kill();
+ if (process.platform === 'win32') {
+ // Sometimes there's a yes.exe process left hanging around on Windows...
+ child_process.execSync(`taskkill /f /t /pid ${child.pid}`);
+ } else {
+ child.kill();
+ }
const gbits = (bytes * 8) / (1024 * 1024 * 1024);
bench.end(gbits);
}, dur * 1000);