[发明专利]一种性能缺陷检测方法、装置和系统有效

专利信息
申请号: 201110355861.8 申请日: 2011-11-10
公开(公告)号: CN103106134A 公开(公告)日: 2013-05-15
发明(设计)人: 王成军 申请(专利权)人: 阿里巴巴集团控股有限公司
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京集佳知识产权代理有限公司 11227 代理人: 逯长明
地址: 英属开曼群岛大开曼*** 国省代码: 开曼群岛;KY
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 性能 缺陷 检测 方法 装置 系统
【说明书】:

技术领域

本申请涉及Java性能测试领域,特别涉及一种性能缺陷检测方法、装置和系统。

背景技术

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行至少需要编译成不同的目标代码。

Java虚拟机(Java Virtual Machine,JVM)是通过在实际的计算机上仿真模拟各种计算机的功能来实现的运行Java程序的虚拟计算机。JVM在实现时可以包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。Java虚拟机在运行Java程序时,Java程序的源代码即使在不同平台上运行也不需要重新编译,因为JVM屏蔽了具体操作系统平台相关的信息,使Java源代码只需转换为在Java虚拟机上能够运行的目标代码(字节码)就可以在多种平台上直接运行。

如果Java程序的源代码出现性能缺陷,那么该Java程序在实际环境中运行时就会导致运行程序的计算机系统性能较低,甚至会造成计算机系统的瘫痪。因此,对于Java程序的源代码进行性能缺陷检测就十分必要,只有在Java程序实际运行之前就能够对存在性能缺陷的Java源代码进行调整,才能保证计算机系统的性能,也能进一步避免计算机系统在运行Java程序过程中出现的瘫痪问题。

但是发明人经过研究发现,现有技术中还未存在利用虚拟机有效的对Java程序的源代码的性能缺陷进行准确检测的方法。

发明内容

本申请所要解决的技术问题是提供一种性能缺陷检测方法,用以利用虚拟机对Java程序的源代码的性能缺陷进行准确检测,从而保证Java程序在实际环境中运行时的计算机系统性能,进一步的避免计算机系统再运行Java程序过程中出现瘫痪问题。

本申请还提供了一种性能缺陷检测装置,用以保证上述方法在实际中的实现及应用。

为了解决上述问题,本申请公开了一种性能缺陷检测方法,包括:

在Java虚拟机JVM运行Java程序的过程中,获取所述Java程序的性能缺陷检测数据,所述性能缺陷检测数据包括:JVM的内存数据、所述Java程序的线程状态数据和Java程序线程对客户端发送请求的响应数据;

依据预设的性能缺陷分析规则和所述性能缺陷检测数据,检测所述Java程序在运行过程中的性能缺陷。

优选的,所述JVM的内存数据包括:JVM堆内存中新生代Young区的内存使用大小、内存总容量,以及Young区的垃圾回收Young GC次数和每次回收的执行时间;

则依据预设的性能缺陷分析规则和所述性能缺陷检测数据,检测所述Java程序在运行过程中的性能缺陷包括:

计算Young区的内存使用大小与Young区的内存总容量的比值;

获取各个所述执行时间段内Young GC时间轴曲线上符合比值条件的曲线点,所述符合比值条件的曲线点为Young区的内存使用大小与Young区的内存总容量的比值最小的曲线点;

对所述符合比值条件的曲线点进行曲线连接,并判断所述符合比值条件曲线点在重新连接的曲线上斜率大于0的个数是否超过n,如果是,则确定所述Java程序的性能缺陷为内存泄露;其中n为不小于3的正整数。

优选的,所述JVM的内存数据包括:JVM堆内存中老生代Old区的内存使用大小、内存总容量,以及老生代Old区的垃圾回收Old GC次数和每次回收的执行时间;

则依据预设的性能缺陷分析规则和所述性能缺陷检测数据,检测所述Java程序在运行过程中的性能缺陷包括:

计算Old区的内存使用大小与Old区的内存总容量的比值;

获取各个所述执行时间段内Young GC时间轴曲线上符合比值条件的曲线点,所述符合比值条件的曲线点为Old区的内存使用大小与Old区的内存总容量的比值最小的曲线点;

对所述符合比值条件的曲线点进行曲线连接,并判断所述符合比值条件曲线点在重新连接的曲线上斜率大于0的个数是否超过n,如果是,则确定所述Java程序的性能缺陷为内存泄露;其中n为不小于3的正整数。

优选的,所述Java程序的线程状态数据包括:Java程序运行过程中各个线程的创建、运行、挂起和结束过程的状态数据;

则依据预设的性能缺陷分析规则和所述性能缺陷检测数据,检测所述Java程序在运行过程中的性能缺陷包括:

对Java程序各个线程运行过程中所拥有及所需要的线程状态数据进行统计比对;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201110355861.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top