[发明专利]JVM在线内存泄露分析方法及系统在审
| 申请号: | 201410002172.2 | 申请日: | 2014-01-02 |
| 公开(公告)号: | CN103714004A | 公开(公告)日: | 2014-04-09 |
| 发明(设计)人: | 贺召军 | 申请(专利权)人: | 金蝶软件(中国)有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平 |
| 地址: | 518000 广东省深圳市南山区*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | jvm 在线 内存 泄露 分析 方法 系统 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种JVM在线内存泄露分析方法以及一种JVM在线内存泄露分析系统。
背景技术
JVM(Java Virtual Machine,Java虚拟机)运行过程中,经常出现内存泄露情况。传统的内存泄露分析方法通常为:在发生OOM(Out Of Memory,内存溢出)或者手动dump之后,通过分析dump文件来分析内存泄露情况。
另外,JVM运行过程中,可以借助Visualvm、JProfile监控java虚拟机内存中的引用关系树个数、大小等,能粗略在线获知JVM内存溢出的信息。但这些信息过于笼统,无法精确监控分析虚拟机内的对象及其变化情况。
发明内容
基于此,本发明提供一种JVM在线内存泄露分析方法及系统,能精确的分析出JVM内存泄露的情况。
为实现上述目的,本发明采用如下的技术方案:
一种JVM在线内存泄露分析方法,包括以下步骤:
获取引用关系树中各节点信息,所述节点信息包括对象的数量及节点占用空间的大小;
在预定时间后重新获取所述引用关系树中各节点信息,并根据两次获取的节点信息构建相应的引用关系变化树;
根据所述引用关系变化树在线分析JVM内存泄露。
一种JVM在线内存泄露分析系统,包括:
获取模块,用于获取引用关系树中各节点信息,所述节点信息包括对象的数量及节点占用空间的大小;
构建模块,用于在预定时间后重新获取所述引用关系树中各节点信息,并根据两次获取的节点信息构建引用关系变化树;
分析模块,用于根据所述引用关系变化树在线分析JVM内存泄露。
综上所述,本发明的一种JVM在线内存泄露分析方法及系统,通过分别获取预定时间前后的引用关系书中各节点信息,根据两次获取的节点信息构建相应的引用关系变化树,并根据该引用关系变化树进行在线分析内存的泄露情况。本发明的方案通过引用关系变化树可以在各个时间段内在线分析JVM内存泄露的情况,因此不仅能在开发初期精确地在线分析JVM是否存在内存泄露,并且还能在发生OOM前发出预警并初步查找问题。
附图说明
图1为本发明实施例中的一种JVM在线内存泄露分析方法的流程示意图;
图2为本发明实施例中的基准引用关系树的示意图;
图3为本发明实施例中的变化后的引用关系树的示意图;
图4为本发明实施例中的引用关系变化树的示意图;
图5为本发明实施例中的一种JVM在线内存泄露分析系统示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1所示,一种JVM在线内存泄露分析方法,包括以下步骤:
步骤S101,获取引用关系树中各节点信息,所述节点信息包括对象的数量及节点占用空间的大小。此步骤中获取的引用关系树可为对象的基准引用关系树,并初始化对该应用关系树。获取一次对象引用关系树的过程和一次full GC类似。结合参见图2所示从,GC Root开始向下搜索,建立引用关系树,在一个引用关系节点中,如果有相同累的多个对象,用数字标示对象个数,并记录该节点节点占用空间的总大小。在建立引用关系过程中,递归引用不记录,由于所以的对象都会引用java.lang.Class,故也不需要记录到引用关系中。如图2中所示的标示为Object B(2,258)的节点,表示类B的实例对象有两个,占用总内存空间为258。
步骤S102,在预定时间后重新获取所述引用关系树中各节点信息,并根据两次获取的节点信息构建相应的引用关系变化树。在设定的时间间隔后或者在用户操作触发下(如用户查看),重新获取所述引用关系树,此时的引用关系树相对基准引用关系树已经发生了变化。经过分析已经变化的引用关系树,并和步骤S101中获取的引用关系树进行比较计算,根据计算的结果获得引用关系变化树。将已经变化的引用关系树丢弃,并保存引用关系变化树。
步骤S103,根据所述引用关系变化树在线分析JVM内存泄露。
作为一个较好的实施例,所述根据两次获取的节点信息构建引用关系变化树的过程具体可以包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金蝶软件(中国)有限公司,未经金蝶软件(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410002172.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:印章展示架
- 下一篇:一种辅助治疗胃炎的糕点及其制作方法





