一种内存泄漏异常的处理方法、装置和终端设备制造方法及图纸

技术编号:32791072 阅读:21 留言:0更新日期:2022-03-23 19:52
本发明专利技术实施例提供了一种内存泄漏异常的处理方法、装置和终端设备。本发明专利技术实施例提供的技术方案中,检测应用是否发生内存泄漏,若检测出应用发生内存泄漏,生成内存泄漏异常的处理方式,根据所述内存泄漏异常的处理方式,对内存泄漏异常进行异常处理,有利于研发人员快速对内存泄漏异常进行处理,提高了内存泄漏异常问题的处理效率。异常问题的处理效率。异常问题的处理效率。

【技术实现步骤摘要】
一种内存泄漏异常的处理方法、装置和终端设备


[0001]本专利技术涉及计算机
,尤其涉及一种内存泄漏异常的处理方法、装置和终端设备。

技术介绍

[0002]随着现代科技的不断发展,智能设备的硬件和软件方面都得到了很大的提升,例如,在智能手机行业,手机的运行内存已经可以达到12GB,同时配合越来越精细的软件和硬件,极大的提升了用户体验。但这也引发了新的问题,手机的应用软件变得复杂后,对内存的使用需求也更加庞大,可能会出现内存使用超出预期的情况,即应用发生内存泄漏。
[0003]目前,在应用开发调试过程中,如果发生内存泄漏异常问题,只能从内存泄漏异常的相关日志文件中看到最后报错时应用的堆栈信息,若只利用最后报错时应用的堆栈信息对内存泄漏问题进行处理,需要研发人员重新对应用进行测试并手动抓取应用的调试信息,对内存泄漏异常问题的处理效率较低。

技术实现思路

[0004]有鉴于此,本专利技术实施例提供了一种内存泄漏异常的处理方法、装置和终端设备,用以解决现有技术中对内存泄漏异常问题的处理效率较低的问题。
[0005]第一方面,本专利技术实施例提供了一种内存泄漏异常的处理方法,所述方法包括:
[0006]检测应用是否发生内存泄漏;
[0007]若检测出应用发生内存泄漏,生成内存泄漏异常的处理方式;
[0008]根据所述内存泄漏异常的处理方式,对内存泄漏异常进行异常处理。
[0009]在一种可能的实现方式中,所述根据所述内存泄漏异常的处理方式,对内存泄漏异常进行异常处理,具体包括:
[0010]创建文件目录和hprof文件名称;
[0011]调用Java的生成hprof文件的接口函数;
[0012]向所述接口函数输入所述文件目录和所述hprof文件名称,生成所述hprof文件;
[0013]关闭所述应用;
[0014]清理所述应用占用的内存资源。
[0015]在一种可能的实现方式中,所述检测应用是否发生内存泄漏,具体包括:
[0016]获取在所述应用中创建新对象所需的内存空间;
[0017]检测虚拟机剩余内存空间和垃圾回收器可回收空间;
[0018]判断所述虚拟机剩余内存空间是否小于所述创建新对象所需的内存空间且判断所述垃圾回收器可回收空间是否小于所述创建新对象所需的内存空间;
[0019]若判断出所述虚拟机剩余内存空间小于所述创建新对象所需的内存空间且判断出所述垃圾回收器可回收空间小于所述创建新对象所需的内存空间,确定出所述应用发生内存泄漏。
[0020]在一种可能的实现方式中,所述方法还包括:
[0021]获取所述应用发生内存泄漏时的堆栈信息;
[0022]生成应用进程名、进程号和内存泄漏异常相关的关键日志文件;
[0023]生成所述堆栈信息对应的堆栈信息文件。
[0024]在一种可能的实现方式中,所述获取所述应用发生内存泄漏时的堆栈信息包括:
[0025]调用Java的try

catch语句捕获所述应用发生内存泄漏时的堆栈信息。
[0026]在一种可能的实现方式中,所述根据所述内存泄漏异常的处理方式,对内存泄漏异常进行异常处理,具体还包括:
[0027]展示提示窗口,所述提示窗口用于提醒用户应用崩溃。
[0028]第二方面,本专利技术实施例提供了一种内存泄漏异常的处理装置,所述装置包括:
[0029]检测模块,用于检测应用是否发生内存泄漏;
[0030]第一生成模块,用于若检测出应用发生内存泄漏,生成内存泄漏异常的处理方式;
[0031]处理模块,用于根据所述内存泄漏异常的处理方式,对内存泄漏异常进行异常处理。
[0032]所述处理模块具体用于创建文件目录和hprof文件名称;调用Java的生成hprof文件的接口函数;向所述接口函数输入所述文件目录和所述hprof文件名称,生成所述hprof文件;关闭所述应用;清理所述应用占用的内存资源。
[0033]第三方面,本专利技术实施例提供了一种终端设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述内存泄漏异常的处理方法的步骤。
[0034]第四方面,本专利技术实施例提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述内存泄漏异常的处理方法的步骤。
[0035]本专利技术实施例提供的内存泄漏异常的处理方法、装置、终端设备和存储介质的技术方案中,通过在终端设备检测出应用发生内存泄漏异常时,生成内存泄漏异常的处理方式,根据内存泄漏异常的处理方式,对内存泄漏异常进行处理,避免了研发人员手动抓取应用的调试信息的繁琐流程,有利于研发人员快速对内存泄漏异常进行处理,提高了内存泄漏异常问题的处理效率。
【附图说明】
[0036]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0037]图1为本专利技术实施例提供的一种内存泄漏异常的处理方法的流程图。
[0038]图2为本专利技术实施例提供的另一种内存泄漏异常的处理方法的流程图。
[0039]图3为本专利技术实施例提供的一种内存泄漏源头的分析方法的流程图。
[0040]图4为本专利技术实施例提供的一种内存泄漏异常的处理装置的结构示意图。
[0041]图5为本专利技术实施例提供的一种终端设备的示意图。
【具体实施方式】
[0042]为了更好的理解本专利技术的技术方案,下面结合附图对本专利技术实施例进行详细描述。
[0043]应当明确,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。
[0044]在本专利技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本专利技术。在本专利技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
[0045]应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0046]图1为本专利技术实施例提供的一种内存泄漏异常的处理方法的流程图,如图1所示,该方法包括:
[0047]步骤101、检测应用是否发生内存泄漏。
[0048]本步骤中,获取在应用中创建新对象所需的内存空间;检测虚拟机剩余内存空间和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存泄漏异常的处理方法,其特征在于,所述方法包括:检测应用是否发生内存泄漏;若检测出应用发生内存泄漏,生成内存泄漏异常的处理方式;根据所述内存泄漏异常的处理方式,对内存泄漏异常进行异常处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述内存泄漏异常的处理方式,对内存泄漏异常进行异常处理,具体包括:创建文件目录和hprof文件名称;调用Java的生成hprof文件的接口函数;向所述接口函数输入所述文件目录和所述hprof文件名称,生成所述hprof文件;关闭所述应用;清理所述应用占用的内存资源。3.根据权利要求1所述的方法,其特征在于,所述检测应用是否发生内存泄漏,具体包括:获取在所述应用中创建新对象所需的内存空间;检测虚拟机剩余内存空间和垃圾回收器可回收空间;判断所述虚拟机剩余内存空间是否小于所述创建新对象所需的内存空间且判断所述垃圾回收器可回收空间是否小于所述创建新对象所需的内存空间;若判断出所述虚拟机剩余内存空间小于所述创建新对象所需的内存空间且判断出所述垃圾回收器可回收空间小于所述创建新对象所需的内存空间,确定出所述应用发生内存泄漏。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述应用发生内存泄漏时的堆栈信息;生成应用进程名、进程号和内存泄漏异常相关的关键日志文件;生成所述堆栈信息对应的堆栈信息文件。5.根据权利要求4所述的方法,其特征在于,所述获取所述应用发生...

【专利技术属性】
技术研发人员:王双杨丽娜
申请(专利权)人:展讯通信天津有限公司
类型:发明
国别省市:

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

1