What do the return values of node.js process.memoryUsage() stand for? से ज्ञात आरएसएस निवासी सेट आकार है, रैम में आयोजित प्रक्रिया की स्मृति का हिस्सा (बाइट्स में इस प्रक्रिया द्वारा रैम में कितनी मेमोरी आयोजित की जाती है) फ़ाइल का आकार 'text.txt' उदाहरण में प्रयुक्त की यहाँ है 370KB (378,880 बाइट्स)नोड प्रक्रिया मेमोरी उपयोग, निवासी सेट आकार लगातार बढ़ रहा है
var http = require('http');
var fs = require('fs');
var express = require('express');
var app = express();
console.log("On app bootstrap = ", process.memoryUsage());
app.get('/test', function(req, res) {
fs.readFile(__dirname + '/text.txt', function(err, file) {
console.log("When File is available = ", process.memoryUsage());
res.end(file);
});
setTimeout(function() {
console.log("After sending = ", process.memoryUsage());
}, 5000);
});
app.listen(8081);
तो एप्लिकेशन बूटस्ट्रैप पर है: { rss: 22069248, heapTotal: 15551232, heapUsed: 9169152 }
के बाद मैं 10 अनुरोध किया '/ परीक्षण' की स्थिति है:
When File is available = { rss: 33087488, heapTotal: 18635008, heapUsed: 6553552 }
After sending = { rss: 33447936, heapTotal: 18635008, heapUsed: 6566856 }
इसलिए ऐप बूस्टर से 10nth अनुरोध आरएसएस 11378688 बाइट्स के लिए बढ़ाया गया है जो फ़ाइल के आकार से बड़ा समय है।
मुझे पता है कि यह कोड ग्राहकों को परिणाम लिखने से पहले प्रत्येक अनुरोध के लिए संपूर्ण डेटा.txt फ़ाइल को मेमोरी में बफर करेगा, लेकिन मुझे उम्मीद है कि 'टेक्स्ट.txt' के लिए अपेक्षित मेमोरी समाप्त हो जाने के बाद जारी किया गया? लेकिन यह मामला नहीं है?
सेकेंड कैसे अधिकतम आकार की रैम मेमोरी सेट अप करें जो नोड प्रक्रिया का उपभोग कर सकती है?
इसलिए मैंने 'fs.readfile' भाग' पर टिप्पणी की और ये लॉग थे, 1 req 'भेजने के बाद = {आरएसएस: 31162368, हेपटॉटल: 18862880, हेपयूएसड: 10961672}' 10 वां req 'भेजने के बाद = {आरएसएस: 31596544, हेपटॉट : 18862880, heapUsed: 11393584} 'जो 424 केबी की तरह है, काफी वायर्ड है, मैं भी एक जवाब की तलाश में हूं। संपादित करें: यह http://stackoverflow.com/questions/16441601/node-express-memory-increase-on-every-request –