节点:pipe道输出到标准输出泄漏内存
在MacOS 10.12.6的节点v8.9.1中:
下面的最小脚本创build一个Readable
stream,产生无限的string“yes”。 然后通过pipe道stdout
到stdout
。 据我所知,它是根据编写自定义Readable
stream的指导原则编写的。 特别是,当push()
返回false
时,它停止产生数据。
然而,当我从terminal运行它时,这个进程的内存使用量将会无限膨胀,非常快,达到2GB。 这似乎表明stdout
stream中的某种无限累积。
任何人都可以诊断,并解释幕后发生了什么?
var stream = require("stream"); var yesStream = new stream.Readable({ read: function(length) { while (yesStream.push("yes\n")) {} } }); yesStream.pipe(process.stdout);
- .findOne不传递结果callback
- Mongoose模式字段在MongoDB中是反向sorting的
- 如何build立一个服务器,使我的工作networking上的其他人可以使用node.js访问?
- Android客户端parsing多部分表单数据到非ASCII
- 如何在nodejs-Express-passport应用程序中将令牌从服务器传递到客户端
- Nodejs总是不能完全捕获subprocess的stdout数据,除非subprocessfllush(stdout)
- 弃用警告:未处理的承诺拒绝已被弃用
- 如何在node.js超时后closures套接字?
- JWTauthentication是否安全?它如何保护CORS?