在这种情况下如何理解javascript内存泄漏

时间:2018-06-22 02:53:47

标签: javascript memory-leaks

我试图了解内存泄漏,并且阅读了以下博客:

不幸的是,我在这个问题上仍然感到困惑。

所以,我尝试进行如下测试:

  1. 首先,我创建一个纯HTML,其中在div#box中包含一个巨大的表:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="box">
      <table>
        <tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr>

         ... hiden 2400 lines of same content row intended for simplicity ...

        <tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr>
      </table>
    </div>
</body>
</html>
  1. 然后打开devTool并使用ConsoleMemory进行操作和内存重新编码:
// 1. Initial "heap snapshot" get 1.9MB

// 2. Running following code on "Console" and "heap snapshot" get 2.2MB
var box = document.getElementById("box");
var tab = document.querySelector("table");
box.removeChild(tab);
tab = null;

// 3. Running following code on "Console" and  "heap snapshot" get 2.2MB
box.parentElement.removeChild(box);
box = null;

让我困惑的是为什么我几乎清空了这个html DOM树,但是增加了内存消耗。

有关JavaScript内存泄漏的任何解释将不胜感激!预先感谢!

0 个答案:

没有答案