使用回调时可能出现Node.js内存泄漏

时间:2017-08-26 18:47:44

标签: javascript node.js memory-leaks

我一直在用Node.js编码,但由于我不熟悉GC如何使用异步方法,我相信我在这段代码中创建了一个内存泄漏:

function getPriceCC(coins, chn) {

        // Get the spot price of the pair and send it to general
        cc.priceFull(coins.map(function(c){return c.toUpperCase();}),['USD', 'EUR']).
        then(prices => {
                var msg = '__**CryptoCompare**__\n';

                for(var i = 0; i < coins.length; i++)
                        msg += ('- **' + coins[i].toUpperCase() + '-USD** is : `' +
                            prices[coins[i].toUpperCase()]['USD']['PRICE'] + ' USD` (`' +
                            Math.round(prices[coins[i].toUpperCase()]['USD']['CHANGEPCT24HOUR']*100)/100 + '%`).\n'
                            );


                chn.send(msg);

                delete chn;
                delete coins;
                delete msg;
                delete prices;

                })
        .catch(console.error);

}

我读到了关闭,所以我尝试删除回调函数中的变量,但它不断堆积。我还发现有些人不喜欢使用var并说我的代码很糟糕,而Google的一些示例代码使用var

如果需要澄清或需要额外的代码,请告诉我们。

注意:节点版本为8.0.0,实例为AWS上的Ubuntu 16.04。

0 个答案:

没有答案