[英]node.js - How to adjust the the stdout buffer size (aka highWaterMark) of child_process.spawn()?
[英]node.js child_process spawn stdout lower highWaterMark
有没有办法在执行child_process.spawn时降低stdout的highWaterMark?
我读到有可能为exec降低它,但我实际上需要启动一个进程,我可以通过stdin传递数据并通过stdout读出结果。
highWaterMark设置为高,导致读取标准输出不可接受的延迟。
我试图将流对象传递给spawn链接:
avconv = spawn("avconv", params, {
stdio: [process.stdin, process.stdout, process.stderr]
});
哪个工作正常,但当我尝试为女巫创建我自己的流时,我可以定义一个自定义的highWaterMark:
var readable = new stream.Readable();
avconv = spawn("avconv", params, {
stdio: [process.stdin, readable, process.stderr]
});
节点不会接受它。 导致类型错误。
通过设置以下内容,我能够降低子stdio流的缓冲区:
child.stdin._writableState.highWaterMark
child.stdout._readableState.highWaterMark
但是这个过程似乎还有其他的缓冲,因此降低这些可能会有所帮助,也可能没有多大帮助。
文档说,传递给stdio选项的流必须有一个底层文件描述符,例如附加到文件或套接字的文件描述符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.