垃圾回收GC信息处理方法、Java虚拟机及计算机存储介质技术

技术编号:24888413 阅读:47 留言:0更新日期:2020-07-14 18:15
本发明专利技术实施例提供了一种垃圾回收GC信息处理方法、Java虚拟机及计算机存储介质,所述方法包括:在运行中的目标程序中注入GC信息投递代码,当所述目标程序触发GC机制时,执行所述GC信息投递代码,以将所述目标程序的GC信息发送至目标消息队列;根据预设解析规则,解析所述目标消息队列中的GC信息,输出针对所述GC信息的解析结果。通过向运行中的目标程序中动态注入GC信息投递代码,无需导出文件,无需重启目标程序,也无需修改目标程序的源代码,侵入式的收集目标程序的实时GC信息,实现对目标程序内存状态的动态监测,避免JVM出现内存泄漏异常,提高了JVM服务的稳定性。

【技术实现步骤摘要】
垃圾回收GC信息处理方法、Java虚拟机及计算机存储介质
本专利技术涉及计算机
,尤其涉及一种垃圾回收GC信息处理方法、Java虚拟机及计算机存储介质。
技术介绍
Java提供的垃圾回收(GarbageCollection,GC)机制可以自动监测Java程序中的对象是否超过作用域,并将已经超过作用域的对象侵占的内存释放,从而达到自动回收内存的目的。现有技术中,当Java虚拟机(JavaVirtualMachine,JVM)出现内存溢出(OutOfMemory,OOM)异常时,使用Java开发工具包(JavaSEDevelopmentkit,JDK)自带的Java虚拟机统计信息工具(JavaVirtualMachinestatisticsmonitoringtool,Jstat),将JVM的GC信息导出成dump文件后,使用一些工具插件对GC信息进行分析,才能获取JVM的内存状态。但当JVM出现OOM异常时已经影响到了服务的稳定性。可见,现有技术中存在JVM服务稳定性较差的问题。专
技术实现思路
本本文档来自技高网
...

【技术保护点】
1.一种垃圾回收GC信息处理方法,其特征在于,所述方法包括以下步骤:/n在运行中的目标程序中注入GC信息投递代码,所述GC信息投递代码用于将所述目标程序的GC信息发送至目标消息队列;/n当所述目标程序触发GC机制时,执行所述GC信息投递代码,以将所述目标程序的GC信息发送至目标消息队列;/n根据预设解析规则,解析所述目标消息队列中的GC信息,输出针对所述GC信息的解析结果。/n

【技术特征摘要】
1.一种垃圾回收GC信息处理方法,其特征在于,所述方法包括以下步骤:
在运行中的目标程序中注入GC信息投递代码,所述GC信息投递代码用于将所述目标程序的GC信息发送至目标消息队列;
当所述目标程序触发GC机制时,执行所述GC信息投递代码,以将所述目标程序的GC信息发送至目标消息队列;
根据预设解析规则,解析所述目标消息队列中的GC信息,输出针对所述GC信息的解析结果。


2.根据权利要求1所述的方法,其特征在于,所述在运行中的目标程序中注入GC信息投递代码,包括:
调用BTrace工具在运行中的目标程序中注入GC信息投递代码。


3.根据权利要求1所述的方法,其特征在于,所述当所述目标程序触发GC机制时,执行所述GC信息投递代码,包括:
当所述目标程序触发GC机制时,根据所述GC信息投递代码,获取所述目标程序的GC信息,所述GC信息包括GC对象的内存信息;
根据所述目标程序的服务类型,将所述目标程序的GC信息发送至与所述服务类型对应的目标消息队列。


4.根据权利要求3所述的方法,其特征在于,所述根据所述目标程序的服务类型,将所述目标程序的GC信息发送至与所述服务类型对应的目标消息队列,包括:
根据所述目标程序的服务类型,基于kafka消息发送方法,将所述目标程序的GC信息发送至与所述服务类型对应的所述目标消息队列。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述解析结果,若存在具有预设行为的GC对象时,进行报警提示。


6.根据权利要求5所述的方法,其特征在于,所述具有预设行为的GC对象包括以下至少一项:
进行GC的次数超过第一预设阈值的GC对象;
占用内存空间超过第二预设阈值的GC对象。


7.一种Java虚拟机,其特征在于,所述Java虚拟机包括:
注入模块,用于在运行中的目标程序中注入GC信息投递代码,所述GC信息投递代码用于将所述目标程序的GC信息发送至目标消息队列;<...

【专利技术属性】
技术研发人员:宋超艾国信
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京;11

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

1