js内存走漏

什么是内存走漏?

顺序运转须要内存。只需顺序提出请求,操纵体系或许运转时就必需供应内存。

关于延续运转的效劳历程,必需及时开释不再用到的内存。不然,内存占用越来越高,轻则影响体系机能,重则致使历程崩溃。

渣滓接纳机制

所谓的渣滓接纳机制,就是经由过程变量的援用次数来决议是不是接纳。

假如一个值的援用次数为0,就示意不再用到,这个值就会被渣滓接纳机制找到接纳并开释

例: var arr = [1,2,3,4]; 
    arr = null; //当变量赋值为null时,援用次数为0

内存走漏识别要领

如何能够观察到内存走漏呢?

假如一连五次渣滓接纳以后,内存占用一次比一次大,就有内存走漏。这就请求及时检察内存占用

Chrome游览器

操纵步骤:

1. 翻开开发者东西,挑选Performance面板

2. 点击勾选Memory,点击录制按钮(或Ctrl+E)

3. 在页面上模仿用户操纵

4. 操纵完成后点击Stop(Ctrl+E)完成录制


假如内存占用基础安稳,靠近程度,申明不存在内存走漏。

反之,内存波动差异较大就是内存走漏

运用Node敕令

运用Node供应process.memoryUsage()要领返回一个对象,包含Node历程的内存占用信息,该对象包含四个字段。

1.res(resident set size):一切内存占用,包含指令区和客栈

2.heapTotal: “堆”占用的内存,包含用到的和没用到的

3.heapUsed: 用到的堆的部份,推断内存走漏以该字段为准

4.external: V8 引擎内部的C++对象占用的内存

    原文作者:Jonsen_li
    原文地址: https://segmentfault.com/a/1190000012924357
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞