【技术实现步骤摘要】
一种耗时的确定方法和装置
本专利技术涉及信息
,尤其涉及一种调耗时的确定方法和装置。
技术介绍
客户端在运行时,若需要对运用的方法(method)调用进行追踪分析。在客户端的源代码中设置了多个可被调用的调用方法,一个所述调用方法可能对应了客户端需要实现的一个功能。通过追踪分析可以知道该方法的调用情况。相关技术中进行方法调用追踪分析通常具有如下方法:在客户端中手动埋点的方案:该方案需要对所有方法加入埋点,对包大小和性能影响都很大,而且无法覆盖系统级别的方法,无法全面监控。通过hook(挂钩)方式在客户端的源代码中插入异常处理代码进行方法调用的追踪分析:该方案会改动原始方法所对应的源代码,由于相当于执行方法中引入了其他代码,对性能有一定影响,若引入的异常处理代码出现问题还会引发崩溃问题。。如何尽可能的减少对客户端原有的逻辑执行情况下,能够全面监控客户端的方法调用状况,是现有技术仍需进一步解决的问题。
技术实现思路
本专利技术的一个目的是提供一种耗时的确定方法和装置,以解决现有客户端的方法调用监控不全面或会干扰原有执行逻辑的问题。根据本专利技术的第一方面,一种耗时确定方法,包括:通过与主线程异步的监控线程,按照预定时间间隔获取所述主线程进行函数调用的调用链路;对相邻时间间隔获取的相同的调用链路,进行聚合处理;确定聚合处理后的各调用链路中各函数调用所需的调用耗时。根据本专利技术的第二方面,一种基于采集的调用链路进行调用耗 ...
【技术保护点】
1.一种耗时确定方法,其特征在于,包括:/n通过与主线程异步的监控线程,按照预定时间间隔获取所述主线程进行函数调用的调用链路;/n对相邻时间间隔获取的相同的调用链路,进行聚合处理;/n确定聚合处理后的各调用链路中各函数调用所需的调用耗时。/n
【技术特征摘要】
1.一种耗时确定方法,其特征在于,包括:
通过与主线程异步的监控线程,按照预定时间间隔获取所述主线程进行函数调用的调用链路;
对相邻时间间隔获取的相同的调用链路,进行聚合处理;
确定聚合处理后的各调用链路中各函数调用所需的调用耗时。
2.一种基于采集的调用链路进行调用耗时的确定方法,其特征在于,包括:
利用与主线程异步的监控线程按照预定时间间隔获取所述主线程的方法调用及所述主线程进行所述方法调用的调用链路;
在所述主线程执行完所述方法调用后,聚合相邻所述预定时间间隔获取的相同所述调用链路,得到聚合结果;
基于所述聚合结果,统计所述调用链路中各调用方法的调用耗时;
基于所述调用耗时输出调用状况信息。
3.根据权利要求2所述的方法,其特征在于,所述利用与主线程异步的监控线程按照预定时间间隔获取所述主线程调用的方法进行采集,获得所述主线程的调用链路,包括:
利用所述监控线程按照预定时间间隔采集主线程的堆栈,获得所述主线程的调用链路,其中,所述堆栈内包含所述主线程的调用方法的调用信息。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述聚合结果,统计所述调用链路中各调用方法的调用耗时,包括:
将一个所述调用方法所对应所述预定时间间隔累加,获得所述调用耗时。
5.根据权利要求2或3所述的方法,其特征在于,所述基于所述调用耗时输出调用状况信息,还包括:
基于所述聚合结果和所述调用耗时,生成以调用方法和调用耗时为节点的树状结构;
遍历所述树状结构,获得所述主线程执行所述预定任务的耗时产生预定影响的调用状况信息;
将所述调用状况信息返回给服务端。
6.根据权利要求5所述的方法,其特征在于,所述调用状况信息包括以下至少之一:
调用链路所包含调用方法的方法数字地址;
调用方法的方法数字地址。
7.根据权利要求6所述的方法,其特征在于,所述方法数字地址用于服务端符号化后进行问题分析和定位。
8.根据权利要求5所述的方法,其特征在于,所述遍历所述树状结构,获得所述主线程执行所述预定任务的耗时产生预定影响的调用状况信息,包括:
遍历所述树状结构,获得所述主线程执行预定任务的调用耗时最大的调用链路和/或调用方法。
9.一种耗时确定方法,其特征在于,包括:
确定待监控的函数;
通过与主线程异步的监控线路,获取函数的调用链路;
基于获取的函数的调用链路,确定函数调用耗时。
10.一种耗时确定装置,其特征在于,包括:
第一获取模块,用于通过与主线程异步的监控线程,按照预定时间间隔获取所述主线程进行函数...
【专利技术属性】
技术研发人员:彭玉堂,刘韩松,尹峥伟,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。