一种Java程序性能问题定位方法及装置制造方法及图纸

技术编号:26170319 阅读:29 留言:0更新日期:2020-10-31 13:37
本发明专利技术公开了一种Java程序性能问题定位方法,包括:获取JVM堆内存信息,包括:JVM堆内存中的对象属性以及对象之间的引用关系,JVM堆内存中的对象构成对象引用图;获取所述对象引用图中每个对象类型的内存消耗贡献度PIC;根据所述内存消耗贡献度PIC对程序中的问题进行定位。本发明专利技术通过计算内存消耗贡献度PIC可以更科学的计算出大概率问题类,通过这种具象化的分析可以有效解决目前内存使用分析技术中性能问题定位不准确和人工分析负担重的缺点。

A java program performance problem location method and device

【技术实现步骤摘要】
一种Java程序性能问题定位方法及装置
本专利技术涉及计算机
领域,具体涉及一种Java程序性能问题定位方法及装置。
技术介绍
Java程序中最常见的性能问题都源自于内存。例如,JVM中的内存错误,垃圾收集过多,数据缓存不当,线程死锁和死锁,耗尽数据库连接,数据库调用缓慢,java代码级别问题,java应用服务器瓶颈,服务器性能问题,网络延迟和连接问题。目前主流Java程序内存使用分析技术包括MAT(EclipseMemoryAnalyzerTool)和JProfiler,MAT:一个Java堆分析器,分析Java堆内存中各个对象类型占用内存的大小,提供对象类型之间的对象引用关系。JProfiler:一个Java程序性能监控工具,提供Java软件的对象、对象引用、内存使用情况。但MAT和JProfiler技术都存在一定局限性,图1为堆内存中的对象类型按照消耗内存大小由大到小排序图,其局限在于内存消耗多的对象类型往往是一些基本类(例如,String,Char,HashMap,ArrayList),这些基本类的对象在软件中分布广泛,无本文档来自技高网...

【技术保护点】
1.一种Java程序性能问题定位方法,其特征在于,包括:/n获取JVM堆内存信息,包括:JVM堆内存中对象的对象属性以及对象之间的引用关系,JVM堆内存中的对象构成对象引用图;/n获取所述对象引用图中每个对象类型的内存消耗贡献度PIC;/n根据所述内存消耗贡献度PIC确定程序出现性能问题的对象引用路径。/n

【技术特征摘要】
1.一种Java程序性能问题定位方法,其特征在于,包括:
获取JVM堆内存信息,包括:JVM堆内存中对象的对象属性以及对象之间的引用关系,JVM堆内存中的对象构成对象引用图;
获取所述对象引用图中每个对象类型的内存消耗贡献度PIC;
根据所述内存消耗贡献度PIC确定程序出现性能问题的对象引用路径。


2.根据权利要求1所述的Java程序性能问题定位方法,其特征在于,该方法还包括:检测所述对象引用图中的循环结构,并使用单一节点表示所述循环结构。


3.根据权利要求2所述的Java程序性能问题定位方法,其特征在于,通过强连通分量算法检测所述对象引用图中的循环结构。


4.根据权利要求2所述的Java程序性能问题定位方法,其特征在于,所述单一节点满足以下条件:节点的内存是其所包含对象内存大小的总和、节点包含的对象将作为一个整体以及节点中各个对象的内存大小取平均值。


5.根据权利要求1所述的Java程序性能问题定位方法,其特征在于,所述获取每个对象类型的内存消耗贡献度PIC,包括:
获取每个对象类型的内存消耗和内存支配,根据所述内存消耗与所述内存支配得到该对象类型对程序性能影响的内存消耗贡献度PIC。


6.根据权利要求5所述的Java程序性能问题定位方法,其特征在于,所述内存消耗贡献度
PIC表示为:
PIC=MC×(MD+MC)
其中,MC为内存消耗,MD为内存支配。


7...

【专利技术属性】
技术研发人员:刘星辰吕潘锋
申请(专利权)人:重庆紫光华山智安科技有限公司
类型:发明
国别省市:重庆;50

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

1