[发明专利]获取程序性能消耗信息的方法、装置及系统有效
申请号: | 201310325258.4 | 申请日: | 2013-07-30 |
公开(公告)号: | CN104346148B | 公开(公告)日: | 2017-10-20 |
发明(设计)人: | 汤鑫斌 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京润泽恒知识产权代理有限公司11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 获取 程序 性能 消耗 信息 方法 装置 系统 | ||
1.一种获取程序性能消耗信息的方法,其特征在于,包括:
接收携带有待分析目标信息的分析指令,所述待分析目标信息包括待分析进程的信息、待分析方法的信息以及所述待分析方法所属的类的信息;
根据所述待分析目标信息,确定待分析方法;
在所述待分析进程已加载的类中查找待分析方法的字节码,通过字节码操纵框架对所述待分析方法进行字节码增强,以便在待分析方法开始被调用时记录方法开始时间,将方法开始时间及方法标识信息保存到指定位置,在待分析方法返回时记录方法返回时间,将方法返回时间及方法标识信息保存到所述指定位置;
根据所述指定位置记录的信息,计算每次调用过程中涉及的各个待分析方法的性能消耗分析结果。
2.根据权利要求1所述的方法,其特征在于,所述待分析方法为一个或多个,所述待分析方法的信息包括各个待分析方法的标识信息;
所述根据所述待分析目标信息,确定待分析方法包括:
根据所述各个待分析方法的标识信息,确定待分析方法。
3.根据权利要求1所述的方法,其特征在于,所述待分析方法为多个方法,且各个待分析方法根据调用关系可组成调用关系树,所述待分析方法的信息包括入口方法的标识信息,以及所需分析的层次深度;所述入口方法为所述调用关系树的根节点对应的待分析方法;
所述根据所述待分析目标信息,确定待分析方法包括:
在所述待分析进程加载的类中查找所述入口方法对应的类的字节码;
基于字节码进行静态的调用层次分析,确定从所述入口方法开始每一层上的方法分别依赖的方法及其对应的类,直到分析到所述层次深度;
根据各层上确定出的方法确定所述待分析方法。
4.根据权利要求3所述的方法,其特征在于,所述根据各层上确定出的方法确定所述待分析方法包括:
将各个层上确定出的方法全部确定为所述待分析方法。
5.根据权利要求3所述的方法,其特征在于,所述待分析方法的信息还包括目标包的名称信息,所述根据各层上确定出的方法确定所述待分析方法包括:
将各个层上确定出的所述方法中,路径中包含所述目标包的名称信息的方法确定为所述待分析方法。
6.根据权利要求3所述的方法,其特征在于,所述根据所述指定位置记录的信息,计算每次调用过程中涉及的各个待分析方法的性能消耗分析结果,包括:
每次有待分析方法的返回时间被记录到所述指定位置时,判断该返回的方法是否为所述入口方法;
如果是,则确定一次调用过程结束,并对此次调用过程中涉及的各个待分析方法的性能消耗分析结果进行计算。
7.根据权利要求1至6任一项所述的方法,其特征在于,还包括:
从所述指定位置读取所述待分析方法分别在每次调用过程中的性能消耗分析结果并返回。
8.一种获取程序性能消耗信息的方法,其特征在于,包括:
接收用户提交的待分析目标信息;所述待分析目标信息包括待分析进程的信息、待分析方法的信息以及所述待分析方法所属的类的信息;
向指定端口发送携带有所述待分析目标信息的分析指令;
触发所述待分析进程对应的Java虚拟机加载指定的代理模块,以便通过所述代理模块执行以下步骤:通过创建Server Socket类监听所述指定端口;通过所述指定端口监听到所述分析指令后,根据所述待分析目标信息,确定待分析方法;在所述待分析进程已加载的类中查找待分析方法的字节码,通过字节码操纵框架对所述待分析方法进行字节码增强,以便在待分析方法开始被调用时记录方法开始时间,将方法开始时间及方法标识信息保存到指定位置,在待分析方法返回时记录方法返回时间,将方法返回时间及方法标识信息保存到所述指定位置;根据所述指定位置记录的信息,计算每次调用过程中涉及的各个待分析方法的性能消耗分析结果,并保存到所述指定位置;从所述指定位置读取所述待分析方法的性能消耗分析结果并返回;
接收到所述代理模块返回的性能消耗分析结果之后进行展现。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310325258.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于情景的业务驱动模型构建方法
- 下一篇:一种跨平台转换应用代码的方法及装置