我发现我的应用程序有内存泄漏,我认为它是由分离的DOM树引起的。我以前没有真正尝试修复内存泄漏,所以我有一些问题。
我已经对我的应用程序进行了堆快照,并通过搜索了分离的类过滤器:
我有一段时间拍摄了5张快照。我注意到所有这些都出现了一些分离的树,但每个快照的保留大小都有所增加,而在后面的快照中,我从“分离的”类过滤器中获得了更多的结果。这让我相信我发现了泄漏。我已经读过用黄色突出显示的节点有对它们的直接javascript引用,而用红色突出显示的节点没有,但它们是黄色节点树的一部分。
我注意到很多突出显示为红色的节点从HTML代码中引用HTMLImageElements
就像这样(我在3个不同的HTML文件中有完全相同的代码):
<div class="O2-copd-flex">
<div class="O2">
<p>
<img draggable="false" [matTooltip]="translations?.Tooltip.O2" (click)="toggleO2(bed)" [src]="bed.additional_O2 ? medO2 : noO2">
</p>
...
我还有许多Text
个节点突出显示为红色。我检查了其中一个,它说该节点的下一个兄弟是img
,它的父亲是p
,其父级是div
,类O2
。换句话说,该文本应放在上面HTML中的<p>
开始标记和<img>
开始标记之间,但正如您所看到的,没有文字。这可能是由matToolTip
引起的,但我不确定。
非常感谢任何帮助。谢谢!