我试图了解内存泄漏,并且阅读了以下博客:
不幸的是,我在这个问题上仍然感到困惑。
所以,我尝试进行如下测试:
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>
Console
和Memory
进行操作和内存重新编码:// 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内存泄漏的任何解释将不胜感激!预先感谢!