内存泄漏与节点icecast和流式传输到磁盘

时间:2014-06-04 19:47:08

标签: node.js memory-leaks

我正在使用Node.js和ToolTallNate的流行节点 - 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();

1 个答案:

答案 0 :(得分:1)

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