【技术实现步骤摘要】
使用对异常内存使用模式的基于规则的检测来识别和补救内存泄漏
[0001]本领域总体上涉及信息处理,并且更具体地涉及用于管理信息处理系统的技术。
技术介绍
[0002]当应用程序错误地管理内存分配时会发生内存泄漏。例如,当应用程序从可用内存资源池分配内存但之后没有将已分配的内存解除分配或释放回到可用内存资源池时,可能会发生内存泄漏。内存泄漏可对系统性能造成严重的负面影响,包括导致减速和潜在地崩溃或其他系统故障。然而,诊断内存泄漏是通常要求程序员或开发者对应用程序源代码进行详细的手动检查的有挑战性且耗时的过程。
技术实现思路
[0003]本公开的说明性实施方案提供了用于使用对异常内存使用模式的基于规则的检测来识别和补救内存泄漏的技术。
[0004]在一个实施方案中,一种设备包括至少一个处理装置,所述至少一个处理装置包括联接到存储器的处理器。所述至少一个处理装置被配置为执行以下步骤:响应于指定的事件,发起监控与一组应用程序中的至少一个给定的应用程序相关联的内存分配和解除分配操作;维护包括一个或多个条目的内存分配操作数据结构,所述一个或多个条目中的每一者对应于与没有相关联的内存解除分配操作的所述给定的应用程序相关联的被监控的内存分配操作;以及至少部分地基于所述内存分配操作数据结构的对于所述给定的应用程序的所述一个或多个条目来确定所述给定的应用程序的内存使用是否对应于一组异常内存使用模式规则中的任一者。所述至少一个处理装置还被配置为执行以下步骤:响应于确定所述给定的应用程序的所述内存使用对应于所述一组异 ...
【技术保护点】
【技术特征摘要】
1.一种设备,所述设备包括:至少一个处理装置,所述至少一个处理装置包括联接到存储器的处理器;所述至少一个处理装置被配置为执行以下步骤:响应于指定的事件,发起监控与一组应用程序中的至少一个给定的应用程序相关联的内存分配和解除分配操作;维护包括一个或多个条目的内存分配操作数据结构,所述一个或多个条目中的每一者对应于与没有相关联的内存解除分配操作的所述给定的应用程序相关联的被监控的内存分配操作;至少部分地基于所述内存分配操作数据结构的用于所述给定的应用程序的所述一个或多个条目来确定所述给定的应用程序的内存使用是否对应于一组异常内存使用模式规则中的任一者;以及响应于确定所述给定的应用程序的所述内存使用对应于所述一组异常内存使用模式规则中的一者或多者,将所述给定的应用程序识别为至少具有成为至少一个内存泄漏的原因的指定的阈值可能性;以及响应于将所述给定的应用程序识别为至少具有成为所述至少一个内存泄漏的所述原因的所述指定的阈值可能性,执行用于防止和解决所述至少一个内存泄漏中的至少一项的一个或多个补救动作。2.如权利要求1所述的设备,其中所述指定的事件包括以下至少一项:接收到请求来确定所述给定的应用程序是不是所述至少一个内存泄漏的原因;确定运行所述给定的应用程序的系统正在经历所述至少一个内存泄漏;以及确定运行所述给定的应用程序的系统正在经历降低的性能,所述降低的性能对应于一个或多个性能指标至少在指定的阈值时间段内低于一个或多个指定的性能指标阈值。3.如权利要求1所述的设备,其中监控与所述给定的应用程序相关联的内存分配和解除分配操作包括激活由运行所述给定的应用程序的系统暴露的内存分配和解除分配函数中的应用程序钩子。4.如权利要求1所述的设备,其中维护所述内存分配操作数据结构包括:响应于与所述给定的应用程序相关联的每个检测到的内存分配操作,在所述内存分配操作数据结构中创建条目;以及响应于每个检测到的内存解除分配操作,移除所述内存分配操作数据结构中的条目。5.如权利要求1所述的设备,其中所述内存分配操作数据结构中的所述条目中的一个给定条目包括所述给定的应用程序的标识符、所述给定的应用程序的给定发出内存分配请求的时间、运行所述给定的应用程序的系统的内存中响应于所述给定的内存分配请求而分配给所述给定的应用程序的给定部分的标识,以及运行所述给定的应用程序的所述系统的所述内存中响应于所述给定的内存分配请求而分配给所述给定的应用程序的所述给定部分的大小。6.如权利要求5所述的设备,其中所述给定的内存分配请求包括以下至少一项:对动态地指派具有指定大小的内存块的内存分配函数的调用;对动态地指派具有指定大小的两个或更多个内存块的连续内存分配函数的调用;以及对动态地改变至少一个先前指派的内存块的分配的内存重新分配函数的调用。
7.如权利要求1所述的设备,其中响应于附加的指定事件来执行确定所述给定的应用程序的所述内存使用是否对应于所述一组异常内存使用模式规则中的任一者,并且其中所述附加的指定事件包括以下至少一项:接收到请求来中断监控与所述给定的应用程序相关联的所述内存分配和解除分配操作;确定已经至少在指定的阈值时间段内监控与所述给定的应用程序相关联的所述内存分配和解除分配操作;确定运行所述给定的应用程序的系统不再经历所述至少一个内存泄漏;以及确定运行所述给定的应用程序的所述系统不再经历降低的性能,其中确定所述系统不再经历降低的性能是至少部分地基于一个或多个性能指标至少在指定的阈值时间段内处于或高于一个或多个指定的性能指标阈值。8.如权利要求1所述的设备,其中所述一组异常内存使用模式规则包括:第一内存使用模式,其中所述给定的应用程序的内存使用在第一指定的时间段内增加;以及第二内存使用模式,其中所述给定的应用程序的内存使用在第二指定的时间段内增加,而所述给定的应用程序的应用程序负载增加小于指定的阈值量。9.如权利要求8所述的设备,其中所述第一指定的时间段比所述第二指定的时间段长。10.如权利要求1所述的设备,其中所述一组异常内存使用模式规则包括:第一内存使用模式,其中运行所述给定的应用程序的系统的可用内存低于第一指定的可用内存阈值;以及第二内存使用模式,其中运行所述给定的应用程序的所述系统的所述可用内存低于第二指定的可用内存阈值并且运行所述给定的应用程序的所述系统的内存使用的增长率高于指定的内存使用增长率阈值,其中所述第二指定的可用内存阈值低于所述第一指定的可用内存阈值。11.如权利要求1所述的设备...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。