国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

node.js - node垃圾回收、內(nèi)存泄漏相關(guān)問題

瀏覽:89日期:2024-07-16 16:35:19

問題描述

最近剛開始研究垃圾回收,在試著回答餓了么大前端里的node內(nèi)存釋放相關(guān)的問題時,遇到了一些疑問:

let arr = [];while(true) arr.push(1);

無限增加的數(shù)組,這肯定是會爆掉內(nèi)存的。

let arr = [];while(true) arr.push();

這個我覺得只是一直使用 arr ,導(dǎo)致 arr 不能被釋放吧?

let arr = [];while(true) arr.push(new Buffer(1000));

這個是因為 Buffer 的大小小于8k,會先檢查內(nèi)存池是否已滿,所以應(yīng)該不會爆掉內(nèi)存?

var theThing = null var replaceThing = function () { var originalThing = theThing var unused = function () { if (originalThing) console.log('hi') } theThing = { longStr: new Array(1000000).join(’*’), someMethod: function () { console.log(someMessage) } };};setInterval(replaceThing, 1000)

這個是因為 unused 對 originalThing 進(jìn)行了引用,所以每一個 unused 都形成了一個 originalThing 的作用域 replaceThing 的閉包,這個閉包不會被回收掉,所以會在內(nèi)存中一直累積?

因為自己不是很確定,所以麻煩懂的小伙伴回答一下,謝謝!

問題解答

回答1:

new Buffer估計不是簡單爆內(nèi)存的問題,Buffer是分配在V8堆外的,所以實際上比第一個的問題還要嚴(yán)重,我剛才就直接死機(jī)了。

第二個應(yīng)該說的是由于數(shù)組大小不會增長,所以不會爆內(nèi)存。

第三個原文中就有提及原因

比如上述情況中 unused 的函數(shù)中持有了 originalThing 的引用, 使得每次舊的對象不會釋放從而導(dǎo)致內(nèi)存泄漏

如果還是不理解可以看看原發(fā)現(xiàn)者的文章,里面講解的很詳細(xì)。

回答2:

死循環(huán)的代碼到哪都會爆內(nèi)存,特別是js這種單線程語言,直接阻塞卡死。 Buffer類型我沒用過,會不會檢查內(nèi)存池這個無法確定,但卡死了檢不檢查內(nèi)存意義也不大。

最后一個我同意你的說法,每次循環(huán)都新建一個對象,theThing的引用地址不斷在變化,正常情況下舊的引用對象就應(yīng)該被垃圾回收了,但由于unused引用了舊的對象originalThing,originalThing又一個私有變量,所以舊的對象無法被垃圾回收,就造成了內(nèi)存泄露。

有沒有下面這段代碼的區(qū)別,環(huán)境chrome,運(yùn)行30s。 第一幅圖是沒有這段代碼的結(jié)果,內(nèi)存在15M浮動。第二幅圖是有這段代碼的結(jié)果,內(nèi)存不斷增長。

function unused() { if (originalThing) console.log('hi');}

node.js - node垃圾回收、內(nèi)存泄漏相關(guān)問題

node.js - node垃圾回收、內(nèi)存泄漏相關(guān)問題

回答3:

我也不是很確定,不過可以用memwatch-next的包看看

相關(guān)文章:
主站蜘蛛池模板: 欧美日韩久久 | 日本加勒比在线视频 | 五月激激激综合网色播免费 | 一级毛片视频播放 | 免费一级成人免费观看 | 国产精品久久久久久久免费大片 | 可以看的毛片网站 | 特级毛片全部免费播放a一级 | 成人在线免费看 | 嫩模大尺度人体福利视频 | 高清一级毛片免免费看 | 久久亚洲精品成人 | 日韩高清一级毛片 | 99精品视频在线在线视频观看 | 欧美一区二区视频 | 日韩三级黄色片 | 国内精品久久久久久久影视麻豆 | 26uuu欧美日韩国产 | 欧美亚洲日本国产 | 国产精品一一在线观看 | 国产精品无打码在线播放9久 | 亚洲精品亚洲人成人网 | 夜色视频一区二区三区 | 午夜毛片不卡高清免费 | 亚洲视频毛片 | 欧美亚洲激情视频 | 国产伦码精品一区二区 | 国内精品久久久久久久影视麻豆 | se视频在线观看 | 一级毛片aaa片免费观看 | 日本肥老妇色xxxxx日本老妇 | 精品久久久久久中文字幕一区 | 91视频一区 | 免费特黄级夫费生活片 | 美女被cao免费看在线看网站 | 狠狠综合久久久久综合小说网 | 色拍自拍亚洲综合在线 | 成人三级视频在线观看 | 毛片免费观看视频 | 日韩免费高清一级毛片在线 | 亚洲精品中文字幕久久久久久 |