一种内存泄露检测方法、装置、设备及介质制造方法及图纸

技术编号:32968998 阅读:25 留言:0更新日期:2022-04-09 11:30
本公开实施例涉及一种内存泄露检测方法、装置、设备及介质,其中该方法包括:在目标页面退出时,获取目标页面的对象信息,目标页面包括多个对象;根据对象信息确定不同对象之间的强引用关系;根据不同对象之间的强引用关系确定候选泄露对象;根据候选泄露对象的循环引用关系确定目标泄露对象。采用上述技术方案,通过确定页面的不同对象之间的强引用关系可以确定候选泄露对象,进而可以根据该候选泄露对象的循环引用关系确定泄露对象,相较于相关技术中受限于工具的检测对象,扩展了内存泄露的检测范围,提升了内存泄露检测的准确性。提升了内存泄露检测的准确性。提升了内存泄露检测的准确性。

【技术实现步骤摘要】
一种内存泄露检测方法、装置、设备及介质


[0001]本公开涉及内存处理
,尤其涉及一种内存泄露检测方法、装置、设备及介质。

技术介绍

[0002]Objective

C语言通常使用引用计数的方式进行内存管理,所以当多个Objective

C对象互相强引用、形成循环引用时,会造成这些对象都无法释放,造成内存泄漏。
[0003]相关技术中可以通过泄露检测工具和循环引用检测工具结合的方式实现内存泄露的检测,但是这种方式受限于工具检测的对象,当对象不在检测上述工具检测的范围内或者不在循环引用中时无法检测到内存泄露。

技术实现思路

[0004]为了解决上述技术问题,本公开提供了一种内存泄露检测方法、装置、设备及介质。
[0005]本公开实施例提供了一种内存泄露检测方法,所述方法包括:
[0006]在目标页面退出时,获取所述目标页面的对象信息,所述目标页面包括多个对象;
[0007]根据所述对象信息确定不同对象之间的强引用关系;
[0008]根据所述不同对本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种内存泄露检测方法,其特征在于,包括:在目标页面退出时,获取所述目标页面的对象信息,所述目标页面包括多个对象;根据所述对象信息确定不同对象之间的强引用关系;根据所述不同对象之间的强引用关系确定候选泄露对象;根据所述候选泄露对象的循环引用关系确定目标泄露对象。2.根据权利要求1所述的方法,其特征在于,获取所述目标页面的对象信息,包括:通过第一变量获取接口获取所述目标页面包括的每个对象的实例变量;通过变量内存布局获取接口获取每个对象的实例变量中使用强引用方式引用的目标实例变量,之后通过第二变量获取接口获取每个所述目标实例变量的值。3.根据权利要求2所述的方法,其特征在于,根据所述对象信息确定不同对象之间的强引用关系,包括:根据所述目标页面包括的每个对象的目标实例变量以及对应的值,确定不同对象之间的强引用关系。4.根据权利要求3所述的方法,其特征在于,根据所述目标页面包括的每个对象的目标实例变量以及对应的值,确定不同对象之间的强引用关系,包括:如果第一对象的目标实例变量的值为第二对象,则确定所述第一对象强引用所述第二对象。5.根据权利要求1所述的方法,其特征在于,根据所述不同对象之间的强引用关系确定候选泄露对象,包括:根据所述不同对象之间的强引用关系构建强引用树;通过遍历所述强引用树,将其中未被释放的节点对应的对象确定为所述候选泄露对象。6.根据权利要求5...

【专利技术属性】
技术研发人员:徐霜晴
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1