मैं समझने की कोशिश कर रहा हूं कि जीसी को node.js. पर कैसे काम करता है। ऐसा लगता है कि v8 इंजन स्मृति को जारी नहीं करता है।क्यों node.js स्मृति जारी नहीं करता है?
मैंने एक http सर्वर को लागू करने वाली एक बहुत ही सरल लिपि बनाई है और मैं हर 3 सेकंड में मेमोरी उपयोग को स्ट्रीम में सहेजता हूं।
var http = require('http'),
fs = require('fs'),
heapdump = require('heapdump'),
memwatch = require('memwatch');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8888);
console.log('Server running on port 8888.');
memwatch.on('leak', function(info) {
// look at info to find out about what might be leaking
console.log('============= MEMWATCH ON LEAK ============\n',info)
});
memwatch.on('stats', function(stats) {
// do something with post-gc memory usage stats
console.log('============= MEMWATCH STATS ============\n', stats)
});
var myStream = fs.createWriteStream('/tmp/logmem.log');
setInterval(function() {
var t = new Date().getTime();
var memUsage = process.memoryUsage();
var str = t+';heapUsed;'+memUsage.heapUsed+';0;0;0\n'+
t+';heapTotal;'+memUsage.heapTotal+';0;0;0\n'+
t+';rss;'+memUsage.rss+';0;0;0\n';
myStream.write(str);
}, 3000);
मैं 30 अनुरोधों/सेकंड 30 के दौरान Node.js 0.10.33
मैं अपने http सर्वर से अनुरोध भेजने के लिए गैटलिंग उपयोग कर रहा हूँ के पिछले संस्करण (15 अनुरोधों/सेकंड उपयोग कर रहा हूँ तो दौरान 30 तो 100 अनुरोधों 30s के दौरान/सेकंड)
निम्नलिखित चार्ट प्रतिनिधित्व heapUsed
, heapTotal
और rss
process.memoryUsage()
memory usage after 3 tests
Aft द्वारा दिए गए उन परीक्षणों में, सर्वर पर कोई गतिविधि नहीं है लेकिन स्मृति 1 घंटे से अधिक के बाद भी जारी नहीं की जाती है।
किसी ने मुझसे अगर यह होगा कि मेरे लिपि में एक स्मृति रिसाव है की v8 स्मृति के मानक व्यवहार है व्याख्या कर सकते हैं?
मदद
क्या आपको इसके लिए कोई समाधान मिला है? मुझे अभी भी इसी तरह की समस्या का सामना करना पड़ रहा है। – ilse2005