RESTクライアントとして機能し、大きなJSONオブジェクトをリクエストする単純なNodeJsアプリケーションがあります。問題は、メモリが常に不足していることです(6Gb以上)。私は手動のガベージコレクションを使用しています(アプリケーションは--expose_gcで起動しました)が、それはあまり役に立たないようです。大きなJSONオブジェクトを要求するとメモリリークが発生する
は、ここに私のコードです:私は、要求のライブラリを試してみました
var needle = require('needle');
function getAllData() {
getDataFromUrl("http://puppygifs.tumblr.com/api/read/json");
getDataFromUrl("http://puppygifs.tumblr.com/api/read/json");
getDataFromUrl("http://puppygifs.tumblr.com/api/read/json");
getDataFromUrl("http://puppygifs.tumblr.com/api/read/json");
getDataFromUrl("http://puppygifs.tumblr.com/api/read/json");
setInterval(function() {
getAllData();
}, 10 * 1000);
}
function getDataFromUrl(url) {
needle.get(url, function (error, response) {
if (!error && response.statusCode == 200) {
console.log("do something");
}
});
}
function scheduleGc() {
global.gc();
setTimeout(function() {
scheduleGc();
}, 100 * 1000);
}
getAllData();
scheduleGc();
が、私は同じ結果が得られました。私は間違って何をしていますか?
p.s.私のnodejsバージョンは6.9.1、針バージョン1.3.0
、それははるかに少ないです。 6Gbは、setTimeoutの代わりにsetIntervalを使用していたため、使用されたRAMの量でした... – Jkam