System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 卡顿分析方法、装置、计算设备及存储介质制造方法及图纸_技高网

卡顿分析方法、装置、计算设备及存储介质制造方法及图纸

技术编号:40356651 阅读:4 留言:0更新日期:2024-02-09 14:42
本发明专利技术公开了一种卡顿分析方法、装置、计算设备及存储介质,涉及互联网技术领域。方法在服务端执行,服务端配置有为应用提供服务的多个插件,方法包括:接收客户端发送的应用卡顿分析请求,从应用卡顿分析请求中,获取经客户端去重处理后的卡顿堆栈日志;对卡顿堆栈日志进行还原处理,以得到原始堆栈数据;将原始堆栈数据转换为树形结构堆栈数据,树形结构堆栈数据中适于标注每个栈的耗时以及对应的插件信息;根据每个栈的耗时,确定关键卡顿栈;根据关键卡顿栈对应的插件信息,确定导致应用卡顿的目标插件,以便根据目标插件确定卡顿类型和卡顿发生位置。根据本发明专利技术的技术方案,实现了高效、快速地定位应用卡顿原因、卡顿类型和卡顿发生位置。

【技术实现步骤摘要】

本专利技术涉及互联网,尤其涉及一种卡顿分析方法、卡顿分析装置、计算设备及存储介质。


技术介绍

1、应用卡顿率是评价应用性能的一个重要指标,卡顿是指在应用使用过程中出现界面不响应或者界面渲染粘滞的情况。用户在使用应用过程中,应用卡顿的情况直接影响用户体验,降低用户的产品口碑,尤其在付费场景下,可能直接导致用户放弃付费。在实现功能需求的同时,能写出既优雅又高效的代码是每个开发者的追求,但在实际开发中,随着需求的迭代,功能的日渐复杂,应用代码很容易出现大大小小的问题。

2、针对线上多用户使用场景和机型的千差万别,需要针对线上应用卡顿进行检测,而且最好能够检测到卡顿发生的具体位置,例如定位卡顿发生在哪个方法或哪一行代码。

3、现有技术中,android studio作为android应用的官方开发工具,提供有性能相关的检测工具,可以通过profiler对开发期间的应用性能进行详细分析,查看呈现帧的cpu、gpu、线程等细分数据,作为开发工具可以提供应用开发期间的性能检测。xcodeinstrument可以提供ios应用开发的相关性能检测,并且也可以提供详细的细分数据,以协助应用开发期间的性能检测和调优。上述方案的缺点如下:对于线上多用户场景,客户端机型种类繁多,无法在应用开发期间针对所有机型一一进行模拟检测,随着应用的功能需求越来越复杂,细分场景越来越多,上述方案的性能检测无法覆盖所有场景。可见,采用现有的性能检测方案,不适用于线上用户的机型多样性、环境复杂等情况。

4、为此,需要一种卡顿分析方法,以解决上述技术方案中存在的问题。


技术实现思路

1、为此,本专利技术提供一种卡顿分析方法和卡顿分析装置,以解决或至少缓解上面存在的问题。

2、根据本专利技术的一个方面,提供一种卡顿分析方法,在服务端执行,所述服务端与一个或多个客户端通信连接,所述客户端部署有应用,所述服务端配置有为应用提供服务的多个插件,所述方法包括:接收客户端发送的应用卡顿分析请求,从所述应用卡顿分析请求中,获取经所述客户端去重处理后的卡顿堆栈日志;对所述卡顿堆栈日志进行还原处理,以得到原始堆栈数据;将所述原始堆栈数据转换为树形结构堆栈数据,所述树形结构堆栈数据中适于标注每个栈的耗时以及对应的插件信息;根据每个栈的耗时,确定关键卡顿栈;根据所述关键卡顿栈对应的插件信息,确定导致应用卡顿的目标插件,以便根据所述目标插件确定卡顿类型和卡顿发生位置。

3、可选地,在根据本专利技术的卡顿分析方法中,还包括:根据所述树形结构堆栈数据,生成卡顿火焰图进行展示,并在所述卡顿火焰图上标记关键卡顿栈,以便根据所述卡顿火焰图分析卡顿详情。

4、可选地,在根据本专利技术的卡顿分析方法中,根据每个栈的耗时,确定关键卡顿栈,包括:根据每个栈的耗时,确定每个栈的耗时占比;将耗时占比超过第一阈值的一个或多个栈,确定为关键卡顿栈。

5、可选地,在根据本专利技术的卡顿分析方法中,根据每个栈的耗时,确定关键卡顿栈,包括:根据每个栈的耗时,确定每个栈的耗时占比;将耗时占比最高的一个或多个栈确定为关键卡顿栈。

6、可选地,在根据本专利技术的卡顿分析方法中,还包括:在所述卡顿火焰图上标记目标插件信息、以及预估应用卡顿耗时信息。

7、可选地,在根据本专利技术的卡顿分析方法中,所述应用卡顿分析请求中还包括客户端的设备id、机型、应用版本、用户id、操作系统版本中的一种或多种信息。

8、可选地,在根据本专利技术的卡顿分析方法中,所述客户端适于:捕获应用主线程卡顿时的主线程堆栈;对多次捕获到的主线程堆栈进行去重处理,生成所述卡顿堆栈日志。

9、可选地,在根据本专利技术的卡顿分析方法中,所述客户端进一步适于:定时检测所述主线程的运行状态,如果检测到主线程处理事件时的运行时长超过卡顿时长阈值,确定主线程卡顿,并获取主线程堆栈。

10、根据本专利技术的一个方面,提供一种卡顿分析装置,适于部署在服务端,所述服务端与一个或多个客户端通信连接,所述客户端部署有应用,所述服务端配置有为应用提供服务的多个插件,所述装置包括:接收模块,适于接收客户端发送的应用卡顿分析请求,从所述应用卡顿分析请求中,获取经所述客户端去重处理后的卡顿堆栈日志;还原模块,适于对所述卡顿堆栈日志进行还原处理,以得到原始堆栈数据;转换模块,适于将所述原始堆栈数据转换为树形结构堆栈数据,所述树形结构堆栈数据中适于标注每个栈的耗时以及对应的插件信息;确定模块,适于根据每个栈的耗时,确定关键卡顿栈;定位模块,适于根据所述关键卡顿栈对应的插件信息,确定导致应用卡顿的目标插件,以便根据所述目标插件确定卡顿类型和卡顿发生位置。

11、根据本专利技术的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的卡顿分析方法的指令。

12、根据本专利技术的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的卡顿分析方法。

13、根据本专利技术的技术方案,提供了一种卡顿分析方法,服务端配置有为应用提供服务的多个插件,当接收到客户端的应用卡顿分析请求时,从应用卡顿分析请求中获取经客户端去重处理后的卡顿堆栈日志,对卡顿堆栈日志进行还原处理,以得到原始堆栈数据,接着将原始堆栈数据转换为树形结构堆栈数据,树形结构堆栈数据中可以标注每个栈的耗时以及对应的插件信息,进而可以根据每个栈的耗时确定关键卡顿栈,并根据关键卡顿栈对应的插件信息确定导致应用卡顿的目标插件,以便根据目标插件确定卡顿类型和卡顿发生位置。这样,根据本专利技术的技术方案,服务端可以针对客户端应用在运行过程中发生的卡顿问题,将卡顿原因快速定位到具体的插件,实现了高效、快速地定位应用卡顿原因、卡顿类型和卡顿发生位置。

14、进一步地,通过收集多个客户端的上报的设备id、机型、应用版本、用户id、操作系统版本等数据,可以进一步分析不同机型、不同版本的应用在运行过程中的卡顿情况。

15、此外,根据树形结构堆栈数据生成卡顿火焰图进行展示,并可以在卡顿火焰图上标记关键卡顿栈。这样,通过卡顿火焰图可以直观地呈现出卡顿现场的全貌,便于开发人员根据卡顿火焰图进一步分析卡顿详情,实现了卡顿可视化堆栈分析。

16、上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。

本文档来自技高网...

【技术保护点】

1.一种卡顿分析方法,在服务端执行,所述服务端与一个或多个客户端通信连接,所述客户端部署有应用,所述服务端配置有为应用提供服务的多个插件,所述方法包括:

2.如权利要求1所述的方法,其中,还包括:

3.如权利要求1或2任一项所述的方法,其中,根据每个栈的耗时,确定关键卡顿栈,包括:

4.如权利要求1或2所述的方法,其中,根据每个栈的耗时,确定关键卡顿栈,包括:

5.如权利要求2所述的方法,其中,还包括:

6.如权利要求1-5中任一项所述的方法,其中,所述应用卡顿分析请求中还包括客户端的设备ID、机型、应用版本、用户ID、操作系统版本中的一种或多种信息。

7.如权利要求1-6中任一项所述的方法,其中,所述客户端适于:

8.一种卡顿分析装置,适于部署在服务端,所述服务端与一个或多个客户端通信连接,所述客户端部署有应用,所述服务端配置有为应用提供服务的多个插件,所述装置包括:

9.一种计算设备,包括:

10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-7中任一项所述方法。

...

【技术特征摘要】

1.一种卡顿分析方法,在服务端执行,所述服务端与一个或多个客户端通信连接,所述客户端部署有应用,所述服务端配置有为应用提供服务的多个插件,所述方法包括:

2.如权利要求1所述的方法,其中,还包括:

3.如权利要求1或2任一项所述的方法,其中,根据每个栈的耗时,确定关键卡顿栈,包括:

4.如权利要求1或2所述的方法,其中,根据每个栈的耗时,确定关键卡顿栈,包括:

5.如权利要求2所述的方法,其中,还包括:

6.如权利要求1-5中任一项所述的方法,其中,所述应用卡...

【专利技术属性】
技术研发人员:李庆辉余洲张洁
申请(专利权)人:北京车智赢科技有限公司
类型:发明
国别省市:

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

1