REST クライアントとして機能し、大きな JSON オブジェクトを要求する単純な NodeJs アプリケーションがあります。問題は、常にメモリが不足することです (6Gb 以上を消費します)。手動のガベージ コレクション (アプリは --expose_gc で開始) を使用していますが、あまり役に立たないようです。
これが私のコードです:
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();
request ライブラリを試してみましたが、同じ結果が得られました。私は何を間違っていますか?
Ps 私の nodejs のバージョンは 6.9.1、針のバージョンは 1.3.0 です