summaryrefslogtreecommitdiff
path: root/benchmark/child_process/child-process-read.js
diff options
context:
space:
mode:
authorBartosz Sosnowski <bartosz@janeasystems.com>2016-05-25 16:33:10 +0200
committerJoão Reis <reis@janeasystems.com>2016-06-09 12:42:54 +0100
commitcbbdc298b0e27b40634a50cb85da64a812fd2094 (patch)
treed8d974d49a4ffd11cc780435220c1460a03ced14 /benchmark/child_process/child-process-read.js
parent0cd01183342d0a1675a261c0bb57e742cfd75d7d (diff)
downloadandroid-node-v8-cbbdc298b0e27b40634a50cb85da64a812fd2094.tar.gz
android-node-v8-cbbdc298b0e27b40634a50cb85da64a812fd2094.tar.bz2
android-node-v8-cbbdc298b0e27b40634a50cb85da64a812fd2094.zip
benchmark: fix child-process-read on Windows
Under Windows 'ipc' communication requires the other process to format its messages with 'IPC framing protocol'. Otherwise, an assert is triggered in libuv. This commit changes child-process-read benchmark to use stdout to communicate with parent process. It also adds child-process-read-ipc.js to benchmark IPC communication using child node process. PR-URL: https://github.com/nodejs/node/pull/6971 Reviewed-By: João Reis <reis@janeasystems.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'benchmark/child_process/child-process-read.js')
-rw-r--r--benchmark/child_process/child-process-read.js13
1 files changed, 10 insertions, 3 deletions
diff --git a/benchmark/child_process/child-process-read.js b/benchmark/child_process/child-process-read.js
index 33c268390f..b0128eb796 100644
--- a/benchmark/child_process/child-process-read.js
+++ b/benchmark/child_process/child-process-read.js
@@ -1,7 +1,14 @@
'use strict';
const common = require('../common.js');
+const os = require('os');
+
+var messagesLength = [64, 256, 1024, 4096];
+// Windows does not support that long arguments
+if (os.platform() !== 'win32')
+ messagesLength.push(32768);
+
const bench = common.createBenchmark(main, {
- len: [64, 256, 1024, 4096, 32768],
+ len: messagesLength,
dur: [5]
});
@@ -13,11 +20,11 @@ function main(conf) {
const len = +conf.len;
const msg = '"' + Array(len).join('.') + '"';
- const options = {'stdio': ['ignore', 'ipc', 'ignore']};
+ const options = { 'stdio': ['ignore', 'pipe', 'ignore'] };
const child = spawn('yes', [msg], options);
var bytes = 0;
- child.on('message', function(msg) {
+ child.stdout.on('data', function(msg) {
bytes += msg.length;
});