【问题标题】:Memory leak with node-icecast and streaming to disk使用 node-icecast 和流式传输到磁盘的内存泄漏
【发布时间】:2014-06-04 19:47:08
【问题描述】:

我正在使用 Node.js 和 ToolTallNate 流行的 node-icecast 模块为社区广播电台构建流存档工具。

似乎所有流数据都卡在内存中,因为内存使用量随着磁盘使用量的增加而增加。

一旦将流数据写入磁盘,我们如何从内存中清除它?

var fs = require('fs'),
    icecast = require('icecast');


var station = {
  shoutcast_url: 'http://streaming.streamonomy.com/xray'
};


var connectToStream = function(){

  icecast.get(station.shoutcast_url, function (res) {

    //Write to disk
    res.on('data', function(data){
      fs.appendFile('output.mp3', data, function (err) {
        if (err) throw err;
      });
    });

  })
  .on('error', function(err){
    console.error('ERROR: ' + err);
  })

}


connectToStream();

【问题讨论】:

    标签: node.js memory-leaks


    【解决方案1】:

    您可以在 fs.appendFile 中设置data = null;。 在 GC 捕获和释放内存之前,它仍然会添加内存。 Reference.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 1970-01-01
      • 2020-05-01
      相关资源
      最近更新 更多