[英]Nodejs writestream memory usage
查看此示例代碼,該代碼在nodejs中創建文件的副本。
var fs = require('fs');
var out = fs.createWriteStream('1_GB_FILE_COPY');
var inp = fs.createReadStream('1_GB_FILE');
inp.pipe(out);
inp.on('end', function() {
console.log("end");
})
process.stdin.on('data', function() {});//just to keep process alive after copy
很好,此代碼有效,並已完成復制。 在復制期間,Nodejs使用大約140MB的內存。 但是,復制完成后,它永遠不會釋放該內存。 這正常嗎? 為什么節點要保留此內存? 有什么辦法可以迫使它沖洗嗎?
系統監視器使您無法非常准確地查看節點應用程序實際使用的內存類型。 操作系統如何為進程分配內存與節點如何管理自己的內存之間存在很大差異。 您可以使用chrome dev工具獲得更好的外觀。 我運行您的代碼以獲取內存快照之前和之后,比較了兩者,發現以下內容:
簡而言之,您絕對不會像您想象的那樣泄漏140MB。 要親自了解這一點,請遵循以下指南:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.