Javascript 离子3~DOM节点内存泄漏
我目前发现我和我的团队正在开发的平台内存泄漏,我尝试了以下方法: 1-在ngFor循环中添加TrackBy() 2-尝试在ngIf和ngFor上尽可能使用异步 3-在.subscribe()之前添加了.TakeUntil(),在ngondstroy()中添加了x.next();x、 完成() 4-在Ngondestory()中添加了clearTimeout 5-在ngOnDestroy()中添加了使所有引用、child和任何变量无效的命令,如下所示:this.y=null 6-在.ts文件中的所有方法上添加了“use strict”标记(用于通知意外全局变量) 7-为垃圾收集器添加了“var”而不是“let”,以检测未使用的引用并销毁它们 8-删除代码中发现的所有循环依赖项 问题:DOM节点在页面打开时增加 已解决:JS中的内存泄漏已解决 离子信息: cli软件包:Javascript 离子3~DOM节点内存泄漏,javascript,angular,memory-leaks,ionic3,dom-node,Javascript,Angular,Memory Leaks,Ionic3,Dom Node,我目前发现我和我的团队正在开发的平台内存泄漏,我尝试了以下方法: 1-在ngFor循环中添加TrackBy() 2-尝试在ngIf和ngFor上尽可能使用异步 3-在.subscribe()之前添加了.TakeUntil(),在ngondstroy()中添加了x.next();x、 完成() 4-在Ngondestory()中添加了clearTimeout 5-在ngOnDestroy()中添加了使所有引用、child和任何变量无效的命令,如下所示:this.y=null 6-在.ts文件中的所
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
cordova (Cordova CLI) : 9.0.0 (cordova-lib@9.0.1)
@ionic/app-scripts : 3.2.2
Cordova Platforms : none
Ionic Framework : ionic-angular 3.9.9
全球方案:
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
cordova (Cordova CLI) : 9.0.0 (cordova-lib@9.0.1)
@ionic/app-scripts : 3.2.2
Cordova Platforms : none
Ionic Framework : ionic-angular 3.9.9
本地套餐:
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
cordova (Cordova CLI) : 9.0.0 (cordova-lib@9.0.1)
@ionic/app-scripts : 3.2.2
Cordova Platforms : none
Ionic Framework : ionic-angular 3.9.9
系统:
Node : v8.8.1
npm : 6.11.3
OS : Windows 10
环境变量:
ANDROID_HOME : not set
杂项:
说明:
未获得任何与DOM节点相关的结果。我认为JS堆大小和JS侦听器正在被清理(与JS相关的任何内容都没有内存泄漏)
但是,即使在清理JS堆大小时,DOM节点在打开另一个页面(不是包含历史的页面,一个新页面)时仍在增加。正在调用Ngondestory,但DOM节点在增加
1-我尝试使用堆快照检测内存泄漏的位置,但没有找到任何结果()。
,
2-我尝试在时间轴上使用分配工具,但没有得到任何结果
3-我尝试过使用分配抽样,但也没有得到任何结果
我唯一发现的是,导致DOM节点在打开新页面时增加的是分离节点。但之后就没有关于如何清除它们的内容了。
假设:
我认为正在发生的事情:
1-即使DOM节点正在销毁组件,并且称为ngondstroy()的内存没有被释放,这意味着DOM节点正在增加
2-在DOM节点销毁组件或页面后调用Ngondestory()(未找到任何方法检查是否在DOM节点销毁组件之前或之后调用Ngondestory()
有人能帮我吗?或者有什么要点可以帮助我检测和解决DOM节点内存泄漏
附言:如果有人需要更多的细节,请在评论中提及,这样我可以提供更多的信息