[发明专利]内存泄漏检测方法、装置以及计算机可读存储介质在审
申请号: | 201910799442.X | 申请日: | 2019-08-27 |
公开(公告)号: | CN112445686A | 公开(公告)日: | 2021-03-05 |
发明(设计)人: | 郑健平 | 申请(专利权)人: | OPPO(重庆)智能科技有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F11/36 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 401120 重庆*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 泄漏 检测 方法 装置 以及 计算机 可读 存储 介质 | ||
1.一种内存泄漏检测方法,其特征在于,所述内存泄漏检测方法包括以下步骤:
在监控到当前应用进程的占用内存增长至第一内存阈值时,对所述当前应用进程的堆栈申请信息进行记录,直至所述占用内存增长至第二内存阈值;
根据所述堆栈申请信息和预设定位条件确定内存泄漏位置。
2.如权利要求1所述的内存泄漏检测方法,其特征在于,所述堆栈申请信息包括申请内存大小,所述根据所述堆栈申请信息和预设定位条件确定内存泄漏位置的步骤包括:
将申请内存大小大于或者等于第三内存阈值的堆栈作为目标堆栈;
根据所述目标堆栈与代码位置的对应关系确定发生内存泄漏的代码位置。
3.如权利要求1所述的内存泄漏检测方法,其特征在于,所述堆栈申请信息包括申请次数,所述根据所述堆栈申请信息和预设定位条件确定内存泄漏位置的步骤包括:
将申请次数大于或者等于申请次数阈值的堆栈作为目标堆栈;
根据所述目标堆栈与代码位置的对应关系确定发生内存泄漏的代码位置。
4.如权利要求1所述的内存泄漏检测方法,其特征在于,所述在监控到当前应用进程的占用内存增长至第一内存阈值时,对所述当前应用进程的堆栈申请信息进行记录,直至所述占用内存增长至第二内存阈值的步骤之前,包括:
在当前应用进程的占用内存小于第一内存阈值时,通过第一调试库为所述当前应用进程分配内存。
5.如权利要求4所述的内存泄漏检测方法,其特征在于,所述在监控到当前应用进程的占用内存增长至第一内存阈值时,对所述当前应用进程的堆栈申请信息进行记录,直至所述占用内存增长至第二内存阈值的步骤包括:
在监控到当前应用进程的占用内存增长至第一内存阈值时,通过第二调试库为所述当前应用进程分配内存,并通过所述第二调试库对所述当前应用进程的堆栈申请信息进行记录,直至所述占用内存增长至第二内存阈值。
6.如权利要求5所述的内存泄漏检测方法,其特征在于,所述在当前应用进程的占用内存大于第一内存阈值且小于第二内存阈值时,对所述当前应用进程的堆栈申请信息进行记录的步骤之后,包括:
在当前应用进程的占用内存大于第二预设阈值时,通过所述第一调试库为所述当前应用进程分配内存。
7.如权利要求1所述的内存泄漏检测方法,其特征在于,所述根据所述堆栈申请信息和预设定位条件确定内存泄漏位置的步骤之后,还包括:
在检测到所述内存泄漏位置对应的内存被释放时,删除记录的所述当前应用进程的堆栈申请信息。
8.如权利要求1所述的内存泄漏检测方法,其特征在于,所述在监控到当前应用进程的占用内存增长至第一内存阈值时,对所述当前应用进程的堆栈申请信息进行记录,直至所述占用内存增长至第二内存阈值的步骤之前,还包括:
在接收到内存泄漏检测指令时,获取所述内存泄漏检测指令携带的进程标识、第一内存阈值和第二内存阈值;
根据所述第一内存阈值和第二内存阈值对所述进程标识对应的当前应用进程的占用内存进行监控。
9.一种内存泄漏检测装置,其特征在于,所述内存泄漏检测装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的内存泄漏检测程序,所述内存泄漏检测程序被所述处理器执行时实现如权利要求1至8中任一项所述的内存泄漏检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有内存泄漏检测程序,所述内存泄漏检测程序被处理器执行时实现如权利要求1至8中任一项所述的内存泄漏检测方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于OPPO(重庆)智能科技有限公司,未经OPPO(重庆)智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910799442.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种光纤结构、光纤扫描器
- 下一篇:汽车自动侧门开闭系统