use*_*601 4 javascript stdout stderr node.js
我正在编写一个node.js应用程序,其中stdout通过管道传输到一个文件.我正在使用console.log编写所有内容.一段时间后,我的应用程序达到1GB限制并停止.有趣的是,如果我使用console.error而不是console.log,内存使用率会保持较低并且程序运行正常.所以看起来node.js无法刷新stdout流,所有内容都保存在内存中.我想让stderr免费提供错误.
我的问题是:
有没有办法将阻塞写入stdout?或者至少,我可以写一个回调到stdout,所以我可以确保我写的不是太多吗?
谢谢!
小智 12
如果你真的想要同步写入stdout,你可以这样做:
var fs = require('fs');
fs.writeSync(1, "Foo\n");
fs.fsyncSync(1);
Run Code Online (Sandbox Code Playgroud)
写入使用process.stdout.write,返回值是数据是否被缓冲.如果是真的,请在process.stdout发出drain事件时继续写.
如果您希望代码看起来同步,请使用如下所述的streamlinejs:Node.js stdout flush
| 归档时间: |
|
| 查看次数: |
7318 次 |
| 最近记录: |