js哪些情況會(huì)造成內(nèi)存泄漏?詳細(xì)說明有哪些

如何自己檢查Node的代碼是否存在內(nèi)存泄漏 1、當(dāng)內(nèi)存問題被探測到之后,你應(yīng)該要確定這確實(shí)是個(gè)內(nèi)存泄漏問題,然后再告知給相關(guān)人員。當(dāng)心誤,短暫的內(nèi)存使用峰值表現(xiàn)得很像是...
如何自己檢查Node的代碼是否存在內(nèi)存泄漏
1、當(dāng)內(nèi)存問題被探測到之后,你應(yīng)該要確定這確實(shí)是個(gè)內(nèi)存泄漏問題,然后再告知給相關(guān)人員。當(dāng)心誤,短暫的內(nèi)存使用峰值表現(xiàn)得很像是內(nèi)存泄漏。如果你的app突然要占用大量的CPU和內(nèi)存,處理時(shí)間可能會(huì)跨越數(shù)個(gè)垃圾回收周期,那樣的話memwatch很有可能將之誤為內(nèi)存泄漏。
2、分析如下:理論上的內(nèi)存泄漏:理論上,如果一個(gè)Promi永遠(yuǎn)不被resolve或reject,且存在對(duì)其的引用,這將導(dǎo)致內(nèi)存泄漏。因?yàn)镴avaScript基于引用計(jì)數(shù)的內(nèi)存管理沒有明確的機(jī)制來通知Promi不再被使用。
3、接下來,使用月量為19w的clear-module進(jìn)行測試。同樣node index.js文件,內(nèi)存趨勢呈現(xiàn)波浪形,說明它完美處理了原理一節(jié)中提到的舊模塊的全部引用,使得熱更前的舊模塊可以被正常GC掉。
4、在瀏覽器環(huán)境下,由于 CEP 支持混編 nodejs 代碼,瀏覽器 v8 和 nodejs v8 的代碼可以混在一起調(diào)試。這意味著,你可以從瀏覽器原生代碼直接跳入 nodejs 函數(shù),再跳回。為了在不簽名的情況下加載 CEP 插件進(jìn)行 debug 或查看 DOM 元素,需要配置 `.debug` 文件。
本文鏈接:http:///bian/874618.html