[发明专利]确定内存泄露的方法、装置、存储介质及终端在审
申请号: | 202210262331.7 | 申请日: | 2022-03-16 |
公开(公告)号: | CN114610520A | 公开(公告)日: | 2022-06-10 |
发明(设计)人: | 李晓辉 | 申请(专利权)人: | 北京小米移动软件有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京英创嘉友知识产权代理事务所(普通合伙) 11447 | 代理人: | 卢夏子 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 确定 内存 泄露 方法 装置 存储 介质 终端 | ||
本公开涉及一种确定内存泄露的方法、装置、存储介质及终端,所述方法应用于终端,包括:在确定所述终端的内存占用量大于或等于预设内存占用阈值的情况下,获取处于使用状态的每个目标内存块的内存分配信息;根据多个所述内存分配信息,生成内存信息文件,以便用户通过所述内存信息文件确定存在内存泄露的对象。也就是说,本公开无需捕获内存分配函数和内存释放函数,根据目标内存块的内存分配信息,即可确定存在内存泄露的对象,实现对物理内存的内存泄露的检测,这样,可以提高物理内存的内存泄露的检测效率。
技术领域
本公开涉及终端技术领域,尤其涉及一种确定内存泄露的方法、装置、存储介质及终端。
背景技术
随着计算机应用需求的日益增加,应用程序的设计与开发也相应的日趋复杂,如何有效进行内存分配和释放,防止内存泄露的问题变得越来越突出。
相关技术中,通过捕获所有的内存分配函数和内存释放函数,对内存泄露情况进行检测,但是,这种方式只适用于堆内存,针对多媒体场景的物理内存(ion内存和gpu内存)的内存泄露,无法通过这种方式进行检测,只能对相关代码进行测试确定,导致内存泄露的检测效率比较低,因此,如何提高对物理内存的内存泄露检测效率成为亟待解决的问题。
发明内容
为克服相关技术中存在的问题,本公开提供一种确定内存泄露的方法、装置、存储介质及终端。
根据本公开实施例的第一方面,提供一种确定内存泄露的方法,应用于终端,所述方法包括:
在确定所述终端的内存占用量大于或等于预设内存占用阈值的情况下,获取处于使用状态的每个目标内存块的内存分配信息;
根据多个所述内存分配信息,生成内存信息文件,以便用户通过所述内存信息文件确定存在内存泄露的对象。
可选地,所述内存占用量包括所述终端的物理内存的占用量。
可选地,所述内存分配信息通过以下方式预先存储:
在所述终端分配所述目标内存块后,分配预设大小的内存信息空间;
获取所述目标内存块对应的内存分配信息,并将所述内存分配信息存储在所述内存信息空间中。
可选地,所述方法还包括:
在所述目标内存块被释放后,释放所述目标内存块对应的内存信息空间。
可选地,所述获取处于使用状态的每个目标内存块的内存分配信息包括:
针对每个所述目标内存块,确定所述目标内存块对应的目标内存信息空间,并从所述目标内存信息空间中获取所述目标内存块对应的内存分配信息。
可选地,所述内存分配信息包括:线程回溯信息和线程属性信息,所述线程回溯信息包括每级函数调用栈中保存的连接寄存器的值。
根据本公开实施例的第二方面,提供一种确定内存泄露的装置,应用于终端,所述装置包括:
内存分配信息获取模块,被配置为在确定所述终端的内存占用量大于或等于预设内存占用阈值的情况下,获取处于使用状态的每个目标内存块的内存分配信息;
内存信息文件生成模块,被配置为根据多个所述内存分配信息,生成内存信息文件,以便用户通过所述内存信息文件确定存在内存泄露的对象。
可选地,所述内存占用量包括所述终端的物理内存的占用量。
可选地,所述装置还包括:
空间分配模块,被配置为在所述终端分配所述目标内存块后,分配预设大小的内存信息空间;
信息存储模块,被被配置为获取所述目标内存块对应的内存分配信息,并将所述内存分配信息存储在所述内存信息空间中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京小米移动软件有限公司,未经北京小米移动软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210262331.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种建筑装修用地面结块清理设备
- 下一篇:代码转换方法、装置、设备及存储介质