SnapShot定位,有人知道怎么处理吗?-鸿蒙开发者社区-51CTO.COM

SnapShot定位,有人知道怎么处理吗?

SnapShot定位

HarmonyOS
2024-05-20 22:01:57
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

1.1 使用Profiler Snapshot进行录制

打开应用,初始化场景 -> 开启录制Snapshot -> 拍摄第一次Snapshot -> 多次触发内存泄漏操作 -> 拍摄第二次-> 结束录制

1.2 Chrome Dev Tools工具

打开Chrome——按 F12 打开 chrome 控制台(Chrome Dev Tools)

1.3 Chrome Dev Tools工具导入快照

保存录制好的.insight文件,用压缩包的形式打开.insight的文件,.heapsnapshot文件就是对应的快照。.heapsnapshot文件可以在Chrome Dev Tools工具上导入打开

Chrome Dev Tools导入.heapsnapshot文件:

l Profilers上鼠标右键后点击Load

l或直接点击Load

1.4 基准

以右边.heapsnapshot文件为基准

1.5 LexicalEnv

闭包变量上下文;闭包是一个链状结构,如下所示:

23797这个节点本身是一个闭包数组,其中0号元素是调用者(或者再往上的调用者,以此类推)的闭包;1号存储的是调试信息,不用关心;2号及以后的元素存储的就是闭包传递的变量,上例传递了两个变量,分别是undefined和object。

2 分析

1. 查找没有释放对象对应的引用链

结合代码,发现testData可疑。46895这个对象是LexicalEnv的3号元素,表明出现了闭包

2. 右键闭包下的任意一个,看详细信息

3.

可以看到在SecondPage中定义的该TestData对象

4. 结合代码,找到对应点


分享
微博
QQ
微信
回复
2024-05-22 15:51:56
相关问题
List局部刷新,有人知道怎么处理
1106浏览 • 1回复 待解决
有人知道社区怎么预约直播
2835浏览 • 1回复 已解决
如何对网络图片处理有人知道
293浏览 • 1回复 待解决
怎么主动关闭键盘,有人知道
346浏览 • 1回复 待解决
有人知道怎么在markdown里面写目录
2333浏览 • 1回复 已解决
怎么压缩一个目录?有人知道
653浏览 • 1回复 待解决
有人知道轻量系统上怎么使用MQTT
2374浏览 • 2回复 已解决
有人知道JS menu如何隐藏
4479浏览 • 1回复 待解决
如何跳出ForEach,有人知道
1950浏览 • 1回复 待解决
webview组件demo ,有人知道
748浏览 • 1回复 待解决
taskpool 使用问题,有人知道
834浏览 • 1回复 待解决
有人知道
534浏览 • 1回复 待解决
如何发送短信,有人知道?
1842浏览 • 1回复 待解决
有人知道
106浏览 • 1回复 待解决
如何保存faultLogger ,有人知道
549浏览 • 1回复 待解决
有人知道关于页demo
703浏览 • 1回复 待解决
有人知道
237浏览 • 0回复 待解决