[发明专利]一种性能分析方法和装置有效
申请号: | 202010513534.X | 申请日: | 2020-06-08 |
公开(公告)号: | CN111679984B | 公开(公告)日: | 2023-09-19 |
发明(设计)人: | 李文彬 | 申请(专利权)人: | 中国银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 王天尧;汤在彦 |
地址: | 100818 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 性能 分析 方法 装置 | ||
本发明提供了一种性能分析方法和装置,该方法包括:将探针加入Java程序;在JVM启动后对加入探针的Java程序进行字节码增强,确定跟踪信息;根据跟踪信息,确定跟踪日志文件;根据跟踪日志文件,确定方法栈信息;根据方法栈信息,确定方法热点报告。本发明可以实现无侵入性的获取跟踪信息;便于分析和优化程序结构,实现跟踪信息至方法栈信息的灵活定制,可以直观给出程序中的性能耗时分布和瓶颈所在。
技术领域
本发明涉及性能分析技术领域,尤其涉及一种性能分析方法和装置。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
Java性能分析,能够帮助人们快速方便地呈现性能分布以及性能热点问题。
在Java性能分析的发展过程中,存在有3种方法和手段:
(1)程序员在代码里手工调用print,然后分析日志找到性能问题,该方法的缺点明显,一是需要程序员修改代码,二是分析手段比较简单和原始;
(2)使用诸如jvisualVM工具来找到性能问题;该方法缺点是:一对Java应用程序的性能影响大;二该工具诊断所有的JVM(Java Virtual Machine,Java虚拟机)里的方法,无法进行定制;三提供的视图有限,例如无法提供并发量视图;
(3)在Spring基础上通过AOP拦截的方式找到性能问题;该方法的致命缺点:一Java应用程序得是由Spring托管的,二通过AOP只能拦截到部分Java代码,不能做到完全跟踪,三是侵入到应用的配置文件。
因此,如何提供一种新的方案,其能够解决上述技术问题是本领域亟待解决的技术难题。
发明内容
本发明实施例提供一种性能分析方法,实现了无侵入性和灵活定制性能分析,该方法包括:
将探针加入Java程序;
在JVM启动后对加入探针的Java程序进行字节码增强,确定跟踪信息;
根据跟踪信息,确定跟踪日志文件;
根据跟踪日志文件,确定方法栈信息;
根据方法栈信息,确定方法热点报告;
根据跟踪日志文件,确定方法栈信息,包括:
获取跟踪日志文件,从跟踪日志文件中读取跟踪信息,建立跟踪信息列表;
建立一个以线程名称为键值的线程字典桶;
从跟踪信息列表中获取跟踪信息里的线程名;
检查线程字典桶里是否存在线程名的信息;
如果线程字典桶里不存在线程名,则创建一个线程对象,创建一个栈对象,将当前跟踪信息丢入栈顶;将线程对象放入线程字典桶;
如果线程字典桶中存在线程名,则从线程字典桶里获取对应的线程对象;
判断跟踪信息里的出栈标志和入栈标志;
若跟踪信息里的标志为入栈标志时,将当前跟踪信息压入线程对象的栈对象中;
若跟踪信息里的标志为出栈标志时:令栈顶等于弹出线程对象的栈对象的栈顶信息;将当前跟踪信息与栈顶的时间戳相减,得到当前方法的运行总时长CT;构建方法栈数据;如果栈对象等于空,将方法栈数据输出到方法栈结果信息文件中;
重复执行从跟踪信息列表中获取下一跟踪信息里的线程名至得到方法栈结果信息文件的过程,直至获取跟踪信息列表中全部跟踪信息对应的方法栈结果信息文件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银行股份有限公司,未经中国银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010513534.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:核对非结构化影像文件迁移准确性的方法和装置
- 下一篇:告警阈值生成方法及装置