程序监控方法及装置制造方法及图纸

技术编号:23343175 阅读:34 留言:0更新日期:2020-02-15 03:49
本发明专利技术提供的一种程序监控方法及装置,通过将待监控程序和监控程序均编译为类文件,然后通过加载器加载的特性,将第一类文件和第二类文件委派到同一顶层进行加载,采用重新编译的方式,将第二类文件的代码注入到第一类文件中,然后通过加载的方式得到第一类文件对应运行程序的系统性能数据,可以在不对系统进行改造,不需要加入额外的监控组件,无感知且高效精准的性能监控并自动化预测分析性能问题,进行高效的性能测试对系统的侵入和影响更小,在不修改源代码的情况,获取系统的性能指标情况和更为细粒度的方法执行和内存分配情况,获取的数据可以进行代码分析和数据挖掘。

Program monitoring method and device

【技术实现步骤摘要】
程序监控方法及装置
本专利技术涉及程序监控
,更具体的,涉及一种程序监控方法及装置。
技术介绍
在高速发展的互联网业务时代。各项目组采用敏捷、迭代等开发方法保证开发效率,在这种快速上线快速交付的模式下,如何使用高效的测试方法保证项目中的性能测试环节,缩短项目测试周期显得尤为重要。目前对Java软件系统进行性能监控存在多种常规方法,如对程序加入监控语句、使用过滤器或拦截器,通过日志等获取监控到的数据进行性能分析。但这无一例外的,上述方法都需要对系统进行某种改造,在代码层面引入监控的组件,并且还要对大量的日志和监控数据进行分析进行性能评定。这无疑对系统的代码管理造成了额外的负担,也对开发测试的数据分析,测试时间大大增加。极大的加重了开发测试的工作。如何在不改变项目代码的前提下,无感知且高效精准的性能监控并自动化预测分析性能问题,进行高效的性能测试是一个亟待解决的问题。
技术实现思路
为了解决上述问题中的至少一个,本申请实施例提供一种程序监控方法,包括:将待监控程序代码编译为第一类文件,监控程序代码编译为第二类文件;本文档来自技高网...

【技术保护点】
1.一种程序监控方法,其特征在于,包括:/n将待监控程序代码编译为第一类文件,监控程序代码编译为第二类文件;/n将所述第一类文件的加载请求发送至第一子类加载器,第二类文件的加载请求发送至第二子类加载器,以使所述第一子类加载器和第二子类加载器对应地将所述第一类文件和所述第二类文件委派至顶层的父类加载器进行加载;/n当监测到所述第一类文件被加载时,拦截并获取所述第一类文件的代码,将所述第二类文件的代码注入到第一类文件的代码中,重新编译形成合并类文件;/n通过加载所述合并类文件获取所述第一类文件中的系统性能数据;/n根据所述系统性能数据监控所述程序在系统中的运行状态。/n

【技术特征摘要】
1.一种程序监控方法,其特征在于,包括:
将待监控程序代码编译为第一类文件,监控程序代码编译为第二类文件;
将所述第一类文件的加载请求发送至第一子类加载器,第二类文件的加载请求发送至第二子类加载器,以使所述第一子类加载器和第二子类加载器对应地将所述第一类文件和所述第二类文件委派至顶层的父类加载器进行加载;
当监测到所述第一类文件被加载时,拦截并获取所述第一类文件的代码,将所述第二类文件的代码注入到第一类文件的代码中,重新编译形成合并类文件;
通过加载所述合并类文件获取所述第一类文件中的系统性能数据;
根据所述系统性能数据监控所述程序在系统中的运行状态。


2.根据权利要求1所述程序监控方法,其特征在于,所述将所述第二类文件的代码注入到第一类文件的代码中,包括:
利用Asm框架将第二类文件中的代码插入到第一类文件中。


3.根据权利要求1所述程序监控方法,其特征在于,所述根据所述系统性能数据监控所述程序在系统中的运行状态,包括:
将所述系统性能数据中对应的数据输入预设的内存泄漏模型、大对象分配模型、内存溢出模型以及耗时增长模型中的至少一个,根据至少一个模型的输出结果监控所述程序。


4.根据权利要求1所述程序监控方法,其特征在于,将所述系统性能数据中对应的数据输入内存泄漏模型,根据所述内存泄漏模型的输出结果监控所述程序,包括:
将所述程序所在系统每个设定时长执行内存回收操作后的内存释放量和使用量输入所述内存泄漏模型;
根据所述内存泄漏模型输出的泄漏内存,确定泄漏风险;其中所述内存泄漏模型基于不同时间点的内存释放量和内存使用量确定内存总量,并根据所述内存总量的线性回归线的趋势确定内存是否存在泄漏。


5.根据权利要求3所述程序监控方法,其特征在于,将所述系统性能数据中对应的数据输入大对象分配模型,根据所述大对象分配模型的输出结果监控所述程序,包括:
将内存的分配数据输入至所述大对象分配模型,以使所述大对象分配模型根据预定义的内存阈值,将内存分配高于内存阈值的对象确定为大对象,触发大对象预警。


6.根据权利要求3所述程序监控方法,其特征在于,将所述系统性能数据中对应的数据输入耗时增长模型,包括:
将所述系统性能数据中的程序耗时数据输入所述耗时增长模型;
根据所述耗时增长模型输出的耗时曲线,监控运行耗时。


7.根据权利要求1所述程序监控方法,其特征在于,所述方法还包括:
基于预设的深度学习性能分析模型,对所述系统性能数据进行分析,得到程序诊断结果;其中,
所述深度学习性能分析模型根据所述程序的历史系统性能数据训练得到。


8.根据权利要求7所述程序监控方法,其特征在于,还包括:
建立所述深度学习性能分析模型;
将所述程序的历史系统性能数据和对应的导致数据异常的原因作为训练集数据,对所述深度学习性能分析模型进行训练。


9.一种程序监控装置,其特征在于,包括:
文件编译模块,将待监控程序代码编译为第一类文件,监控程序代码编译为第二类文件;

【专利技术属性】
技术研发人员:黄俊文杨卓俊谢林洁
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

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

1