【发布时间】:2015-11-25 06:03:39
【问题描述】:
我目前正在尝试在通过 websocket 接收一些更新的页面中查找内存泄漏。所以我所做的是我首先检查了 Chrome 任务管理器,它显示为选项卡分配的内存正在增长。之后我检查了时间线工具(强制 GC 几次),内存似乎表现得很好。
添加了一些 html 节点(绿线),所以我假设仍然有一些节点从 js 代码中引用,但是当我进入分析器(记录堆分配)时,我看到了一个奇怪的行为- 快照本身是 109MB:
但在我停止分析后,内存会增加,而且还不到 109MB。我见过的例子:
- 快照 361M 之前,快照 723M 之后,快照 - 89M
- 快照 329M 之前,快照 612M 之后,快照 - 54.4M
- 快照前 450M,快照后 773M,快照 - 109M
我看到一些节点仍然被引用,但它们的保留大小比快照的大小小很多。
所以我想知道的是为什么 Chrome Profiler 会出现这种奇怪的行为(快照大小和内存消耗的差异)以及我如何找到消耗内存的内容?
【问题讨论】:
标签: memory-leaks google-chrome-devtools