CN110825466B - 一种程序卡顿的处理方法以及卡顿处理装置 - Google Patents
一种程序卡顿的处理方法以及卡顿处理装置 Download PDFInfo
- Publication number
- CN110825466B CN110825466B CN201911096865.1A CN201911096865A CN110825466B CN 110825466 B CN110825466 B CN 110825466B CN 201911096865 A CN201911096865 A CN 201911096865A CN 110825466 B CN110825466 B CN 110825466B
- Authority
- CN
- China
- Prior art keywords
- frame
- program
- function
- execution
- pause
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种卡顿处理的方法以及卡顿处理装置,通过获取程序运行时每个程序帧的执行时间;然后根据帧卡顿识别模型确定所述程序帧中的卡顿帧;并分别记录卡顿帧中多个执行函数的函数执行时间;进而上传卡顿信息至服务器,以对所述程序的卡顿进行处理。从而实现了通过程序执行信息获取卡顿信息的过程,使得卡顿信息可以在服务器进行分析处理,仅获取卡顿帧的执行函数信息可以减少***资源的利用率,以及待处理的数据量,可以快速的实现卡顿信息的确定,进而提高卡顿处理的效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种程序卡顿的处理方法以及卡顿处理装置。
背景技术
随着移动终端相关技术的发展,越来越多的智能设备出现在人们的生活中,其中,游戏是一种主要的终端应用程序,人们需要实时的掌握游戏运行过程中的运行状态以做出优化,保证游戏运行顺畅。
一般,采用相关的客户端性能测试工具采集游戏客户端每一帧函数执行时间,然后将采集到的每一帧的函数执行时间数据需要开发人工去查看判断,以得到处理建议。
但是,对整个测试场景每一帧的函数执行时间,这会消耗大量的CPU资源,对游戏性能影响非常大,使得函数执行时间的参考意义降低;且测出的函数执行时间数据量非常大,开发拿到数据后需要人工去排查可能存在卡顿的帧,并对该帧进行单帧分析,查看该帧下所有函数的执行时间,并做出人工判断,效率低下。
发明内容
有鉴于此,本申请第一方面提供一种程序卡顿的处理方法,可应用于静态数据库的***或程序过程中,具体包括:终端设备获取程序运行时每个程序帧的执行时间;
所述终端设备根据帧卡顿识别模型确定所述程序帧中的卡顿帧,所述卡顿帧包括多个执行函数;
所述终端设备分别记录所述多个执行函数的函数执行时间;
所述终端设备上传卡顿信息至服务器,以对所述程序的卡顿进行处理,所述卡顿信息包括所述卡顿帧和所述多个执行函数的函数执行时间。
优选的,在本申请一些可能的实现方式中,所述终端设备获取程序运行时每个程序帧的执行时间,包括:
所述终端设备确定所述程序负载的引擎;
所述终端设备确定所述引擎对应的通用函数执行入口;
所述终端设备通过所述通用函数执行入口获取所述程序运行时所述多个帧的执行时间。
优选的,在本申请一些可能的实现方式中,所述终端设备分别记录所述多个执行函数的函数执行时间,包括:
所述终端设备确定所述多个执行函数之间的调用关系,以确定函数层级;
所述终端设备根据所述函数层级分别记录各层级下执行函数的函数执行时间。
优选的,在本申请一些可能的实现方式中,所述终端设备分别记录所述多个执行函数的函数执行时间,包括:
所述终端设备确定所述卡顿帧的栈帧;
所述终端设备根据所述栈帧获取所述栈帧所属的执行函数、执行函数参数信息或所述执行函数代码的起始地址,以记录所述执行函数的函数执行时间。
优选的,在本申请一些可能的实现方式中,所述终端设备上传所述函数执行时间至服务器,以对所述程序的卡顿进行处理之前,所述方法还包括:
所述终端设备确定所述程序中所有的所述程序帧执行完成。
优选的,在本申请一些可能的实现方式中,所述帧卡顿识别模型基于时延阈值设定,所述终端设备根据帧卡顿识别模型确定所述程序帧中的卡顿帧,包括:
所述终端设备获取所述程序帧的所述函数执行时间;
所述终端设备若所述函数执行时间大于所述时延阈值,则确定所述程序帧为所述卡顿帧。
优选的,在本申请一些可能的实现方式中,所述终端设备为区块链节点中的区块节点设备。
本申请第二方面提供一种程序卡顿的处理方法,包括:服务器接收终端设备发送的卡顿信息,所述卡顿信息包括所述卡顿帧和所述多个执行函数的函数执行时间,所述函数执行时间用于指示程序运行的卡顿情况;
所述服务器确定满足预设条件的所述函数执行时间,并确定对应的程序帧;
所述服务器根据预设规则处理所述程序帧并得出优化报告。
本申请第三方面提供一种卡顿处理的装置,包括:获取单元,用于获取程序运行时每个程序帧的执行时间;
确定单元,用于根据帧卡顿识别模型确定所述程序帧中的卡顿帧,所述卡顿帧包括多个执行函数;
记录单元,用于所述终端设备分别记录所述多个执行函数的函数执行时间;
处理单元,用于设备上传卡顿信息至服务器,以对所述程序的卡顿进行处理,所述卡顿信息包括所述卡顿帧和所述多个执行函数的函数执行时间。
优选的,在本申请一些可能的实现方式中,所述获取单元,具体用于确定所述程序负载的引擎;
所述获取单元,具体用于确定所述引擎对应的通用函数执行入口;
所述获取单元,具体用于通过所述通用函数执行入口获取所述程序运行时所述多个帧的执行时间。
优选的,在本申请一些可能的实现方式中,所述记录单元,具体用于确定所述多个执行函数之间的调用关系,以确定函数层级;
所述记录单元,具体用于根据所述函数层级分别记录各层级下执行函数的函数执行时间。
优选的,在本申请一些可能的实现方式中,所述记录单元,具体用于确定所述卡顿帧的栈帧;
所述记录单元,具体用于根据所述栈帧获取所述栈帧所属的执行函数、执行函数参数信息或所述执行函数代码的起始地址,以记录所述执行函数的函数执行时间;
优选的,在本申请一些可能的实现方式中,所述处理单元,还用于确定所述程序中所有的所述程序帧执行完成。
优选的,在本申请一些可能的实现方式中,所述帧卡顿识别模型基于时延阈值设定,所述确定单元,具体用于获取所述程序帧的所述函数执行时间;
所述确定单元,具体用于若所述函数执行时间大于所述时延阈值,则确定所述程序帧为所述卡顿帧。
优选的,在本申请一些可能的实现方式中,所述终端设备为区块链节点中的区块节点设备。
本申请第四方面提供一种服务器,包括:接收单元,用于接收终端设备发送的卡顿信息,所述卡顿信息包括所述卡顿帧和所述多个执行函数的函数执行时间,所述函数执行时间用于指示程序运行的卡顿情况;
确定单元,用于确定满足预设条件的所述函数执行时间,并确定对应的程序帧;
优化单元,用于根据预设规则处理所述程序帧并得出优化报告。
本申请第五方面提供一种计算机设备,包括:存储器、处理器以及总线***;所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行上述第一方面或第一方面任一项所述的卡顿处理的的方法;所述处理器还用于根据所述程序代码中的指令执行上述第二方面或第二方面任一项所述的卡顿处理的的方法。
本申请第六方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一项所述的卡顿处理的的方法,或上述第二方面或第二方面任一项所述的卡顿处理的的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
通过获取程序运行时每个程序帧的执行时间;然后根据帧卡顿识别模型确定所述程序帧中的卡顿帧;并分别记录卡顿帧中多个执行函数的函数执行时间;进而上传卡顿信息至服务器,以对所述程序的卡顿进行处理。从而实现了通过程序执行信息获取卡顿信息的过程,使得卡顿信息可以在服务器进行分析处理,仅获取卡顿帧的执行函数信息可以减少***资源的利用率,以及待处理的数据量,可以快速的实现卡顿信息的确定,进而提高卡顿处理的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为卡顿处理***运行的网络架构图;
图2为本申请实施例提供的一种卡顿处理的流程架构图;
图3为本申请实施例提供的一种卡顿处理的方法的流程图;
图4为本申请实施例提供的另一种卡顿处理的方法的流程图;
图5为本申请实施例提供的一种卡顿处理的界面显示示意图;
图6为本申请实施例提供的卡顿处理装置的结构示意图;
图7为本申请实施例提供的一种服务器的结构示意图;
图8为本申请实施例提供的另一种卡顿处理装置的结构示意图;
图9A为本申请实施例提供的一种数据共享***示意图;
图9B为本申请实施例提供的数据共享***中的区块组成示意图;
图9C为本申请实施例提供的区块链节点的数据传输响应示意图。
具体实施方式
本申请实施例提供了一种卡顿处理的方法以及卡顿处理装置,可以应用于终端设备的卡顿测试***或程序应用中,具体通过获取程序运行时每个程序帧的执行时间;然后根据帧卡顿识别模型确定所述程序帧中的卡顿帧;并分别记录卡顿帧中多个执行函数的函数执行时间;进而上传卡顿信息至服务器,以对所述程序的卡顿进行处理。从而实现了通过程序执行信息获取卡顿信息的过程,使得卡顿信息可以在服务器进行分析处理,仅获取卡顿帧的执行函数信息可以减少***资源的利用率,以及待处理的数据量,可以快速的实现卡顿信息的确定,进而提高卡顿处理的效率。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请提供的卡顿处理方法可以应用于可应用于卡顿处理***的运行过程中,具体的,卡顿处理***可以运行于如图1所示的网络架构中,如图1所示,是卡顿处理***运行的网络架构图,如图可知,卡顿处理***可以提供与多个信息源的卡顿处理,通过终端设备获取相关的卡顿信息,并上报服务器进行分析,得出卡顿的处理建议,可以理解的是,图1中示出了多种终端设备的交互形式,在实际场景中可以有更多或更少的终端设备参与到数据调取的过程中,具体数量和种类因实际场景而定,此处不做限定;另外,图1中示出了一个服务器,但在实际场景中,也可以有多个服务器的参与,特别是在多应用数据交互的场景中,具体服务器数量因实际场景而定。
可以理解的是,上述卡顿处理***可以运行于个人移动终端,例如作为“卡顿计”应用程序,也可以运行于服务器,还可以作为运行于第三方设备以提供卡顿处理,以得到相应的优化建议;具体的卡顿处理***可以是以一种程序的形式在上述设备中运行,也可以作为上述设备中的***部件进行运行,还可以作为云端服务程序的一种,具体运作模式因实际场景而定,此处不做限定。
随着移动终端相关技术的发展,越来越多的智能设备出现在人们的生活中,其中,游戏是一种主要的终端应用程序,人们需要实时的掌握游戏运行过程中的运行状态以做出优化,保证游戏运行顺畅。
一般,采用相关的客户端性能测试工具采集游戏客户端每一帧函数执行时间,然后将采集到的每一帧的函数执行时间数据需要开发人工去查看判断,以得到处理建议,例如采用wetest助手进行测试。
但是,对整个测试场景每一帧的函数执行时间,这会消耗大量的CPU资源,对游戏性能影响非常大,使得函数执行时间的参考意义降低;且测出的函数执行时间数据量非常大,开发拿到数据后需要人工去排查可能存在卡顿的帧,并对该帧进行单帧分析,查看该帧下所有函数的执行时间,并做出人工判断,效率低下,而且,现有技术需要将终端设备进行root后才可使用,缩小了卡顿处理的应用范围。
为了解决上述问题,本申请提出了一种卡顿处理的方法,该方法应用于图2所示的卡顿处理的流程框架中,如图2所示,是本申请实施例提供的一种卡顿处理的流程架构图,图中包括接入端、帧卡顿识别模型、卡顿信息以及服务器,首先通过接入端接入目标程序,以得到目标程序的自行函数,然后通过帧卡顿识别模型识别卡顿帧,获取卡顿帧中所有函数的执行时间以生成卡顿信息,进而将卡顿信息上报服务器,服务器对卡顿信息进行分析并得出相关的处理结果。
可以理解的是,本申请所提供的方法可以为一种程序的写入,以作为硬件***中的一种处理逻辑,也可以作为一种卡顿处理装置,采用集成或外接的方式实现上述处理逻辑。作为一种实现方式,该卡顿处理装置通过获取程序运行时每个程序帧的执行时间;然后根据帧卡顿识别模型确定所述程序帧中的卡顿帧;并分别记录卡顿帧中多个执行函数的函数执行时间;进而上传卡顿信息至服务器,以对所述程序的卡顿进行处理。从而实现了通过程序执行信息获取卡顿信息的过程,使得卡顿信息可以在服务器进行分析处理,仅获取卡顿帧的执行函数信息可以减少***资源的利用率,以及待处理的数据量,可以快速的实现卡顿信息的确定,进而提高卡顿处理的效率。
结合上述流程架构,下面将对本申请中卡顿处理的方法进行介绍,请参阅图3,图3为本申请实施例提供的一种卡顿处理的方法的流程图,本申请实施例至少包括以下步骤:
301、终端设备获取程序运行时每个程序帧的执行时间。
本实施例中,程序可以是游戏,也可以是其他软件,具体的程序可以对应不同的接口,故在抓取程序帧之前,终端设备可以确定所述程序负载的引擎;然后确定所述引擎对应的通用函数执行入口;进而通过所述通用函数执行入口获取所述程序运行时所述多个帧的执行时间,例如卡顿计APP通过HOOK unity3d游戏中通用的函数执行入口,可以获取到每一帧的函数执行时间。
302、终端设备根据帧卡顿识别模型确定所述程序帧中的卡顿帧。
本实施例中,帧卡顿识别模型可以基于时延阈值设定,所述卡顿帧包括多个执行函数。其中,若时延阈值为50ms,则帧卡顿识别模型可以是筛选出执行时间大于50ms的帧。
可选的,由于不同程序对于卡顿的要求度不同,帧卡顿识别模型也可以根据程序的类型进行调整,例如:时延阈值调整范围为50ms-100ms,若程序为游戏这类需求低时延的应用,则时延阈值调整为最低,此时执行时间大于50ms的帧将会被筛选出;若程序为播放器,对于时延要求一般,则时延阈值可调整为80ms,此时执行时间大于80ms的帧将会被筛选出,具体的时延阈值选择应实际场景而定,此处不做限定。
303、终端设备分别记录所述多个执行函数的函数执行时间。
本实施例中,对于筛选出的卡顿帧,对其中包括的多个执行函数进行函数执行时间的获取,以确认问题函数的位置。
可以理解的是,由于执行函数之间一般存在调用关系,可以先确定所述多个执行函数之间的调用关系,以确定函数层级;然后根据所述函数层级分别记录各层级下执行函数的函数执行时间。从而保证函数执行的完整性,并提高执行效率。
可选的,在确定函数执行时间后,还可以获取卡顿帧的其他信息,以更加全面的对卡顿帧进行描述,以便于后续的分析过程。具体的,可以通过确定所述卡顿帧的栈帧;然后根据所述栈帧获取所述栈帧所属的执行函数、执行函数参数信息或所述执行函数代码的起始地址,以记录所述执行函数的函数执行时间;将上述信息打包并标明关联关系,生成卡顿信息。
304、终端设备上传卡顿信息至服务器,以对所述程序的卡顿进行处理。
本实施例中,所述卡顿信息包括所述卡顿帧和所述多个执行函数的函数执行时间。
可以理解的是,由于卡顿测试过程中可能为实时用例,并不确定程序的起止点,此时需要确定所述程序中所有的所述程序帧执行完成,才能上传卡顿信息至服务器,以保证卡顿信息的完整性。
305、服务器收集历史处理记录。
本实施例中,历史处理记录是服务器在多次测试过程中保存的卡顿帧处理情况,即对于特定函数的优化处理操作的集合。
306、服务器分析卡顿信息,得出优化建议。
本实施例中,服务器根据步骤305收集的历史处理记录,若当前确定的卡顿帧中的执行函数由历史优化记录,则自动关联并进行优化,若未出现在历史优化记录中,则可以生成相关文件以供相关人员分析,相较于每个执行函数逐一查验,大大节省了处理时间,提高了卡顿处理效率。
结合上述实施例可知,通过获取程序运行时每个程序帧的执行时间;然后根据帧卡顿识别模型确定所述程序帧中的卡顿帧;并分别记录卡顿帧中多个执行函数的函数执行时间;进而上传卡顿信息至服务器,以对所述程序的卡顿进行处理。从而实现了通过程序执行信息获取卡顿信息的过程,使得卡顿信息可以在服务器进行分析处理,仅获取卡顿帧的执行函数信息可以减少***资源的利用率,以及待处理的数据量,可以快速的实现卡顿信息的确定,进而提高卡顿处理的效率。
下面结合游戏卡顿测试场景进行说明,如图4所示,图4为本申请实施例提供的另一种卡顿处理的方法的流程图,本申请实施例至少包括以下步骤:
首先将相关插件注入游戏内,例如“卡顿计”,以HOOK unity引擎内函数通用执行入口,获取每一帧执行时间;然后开始测试,通过帧卡顿识别模型识别出卡顿帧,并记录卡顿帧的所有函数执行时间,检测该用例是否结束,若否则继续执行,若是,则测试结束后,上报数据到云端,云端自动分析卡顿帧函数耗时,找出可能存在问题的函数并从经验库中给出对应的优化建议,并生成报告以供相关人员参考。
可见,通过本实施例可以帮助相关人员准确快速地找到引起游戏卡顿的函数,弥补了Wetest助手无用数据多、对游戏性能影响大、不能智能分析卡顿风险函数以及不能给出优化建议的短板。同时可在安卓目前不能ROOT的机型上,在无需其他工具的辅助下,可快速获取游戏卡顿问题定位相关的数据。只需要安装卡顿计app,无需额外的SDK,无需手机ROOT,无需保存结果后再分析大量无用数据,对性能的影响小,测试结束立即在云端查看报告,降低定位卡顿问题的成本,帮助开发准确的找到引起卡顿的原因。
在一种可能的显示方式中,可以采用如图5所述的显示方式,图5为本申请实施例提供的一种卡顿处理的界面显示示意图。该界面可以包括多个场景的卡顿处理过程,并分别列出各场景下卡顿的情况以及具体的卡顿帧的数量;用户还可以点击详情知晓相关场景对应程序的版本号,并进一步的示出该场景下的累计卡顿延时,以及当前的处理状态。
可以理解的是,上述实施例中设计的参数或步骤均可在该界面中进行显示,此处不做限定。
为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的卡顿处理装置。请参阅图6,图6为本申请实施例提供的卡顿处理装置的结构示意图,卡顿处理装置600包括:
获取单元601,用于获取程序运行时每个程序帧的执行时间;
确定单元602,用于根据帧卡顿识别模型确定所述程序帧中的卡顿帧,所述卡顿帧包括多个执行函数;
记录单元603,用于所述终端设备分别记录所述多个执行函数的函数执行时间;
处理单元604,用于设备上传卡顿信息至服务器,以对所述程序的卡顿进行处理,所述卡顿信息包括所述卡顿帧和所述多个执行函数的函数执行时间。
优选的,在本申请一些可能的实现方式中,所述获取单元601,具体用于确定所述程序负载的引擎;
所述获取单元601,具体用于确定所述引擎对应的通用函数执行入口;
所述获取单元601,具体用于通过所述通用函数执行入口获取所述程序运行时所述多个帧的执行时间。
优选的,在本申请一些可能的实现方式中,所述记录单元603,具体用于确定所述多个执行函数之间的调用关系,以确定函数层级;
所述记录单元603,具体用于根据所述函数层级分别记录各层级下执行函数的函数执行时间。
优选的,在本申请一些可能的实现方式中,所述记录单元603,具体用于确定所述卡顿帧的栈帧;
所述记录单元603,具体用于根据所述栈帧获取所述栈帧所属的执行函数、执行函数参数信息或所述执行函数代码的起始地址,以记录所述执行函数的函数执行时间;
优选的,在本申请一些可能的实现方式中,所述处理单元604,还用于确定所述程序中所有的所述程序帧执行完成。
优选的,在本申请一些可能的实现方式中,所述帧卡顿识别模型基于时延阈值设定,所述确定单元602,具体用于获取所述程序帧的所述函数执行时间;
所述确定单元602,具体用于若所述函数执行时间大于所述时延阈值,则确定所述程序帧为所述卡顿帧。
通过获取程序运行时每个程序帧的执行时间;然后根据帧卡顿识别模型确定所述程序帧中的卡顿帧;并分别记录卡顿帧中多个执行函数的函数执行时间;进而上传卡顿信息至服务器,以对所述程序的卡顿进行处理。从而实现了通过程序执行信息获取卡顿信息的过程,使得卡顿信息可以在服务器进行分析处理,仅获取卡顿帧的执行函数信息可以减少***资源的利用率,以及待处理的数据量,可以快速的实现卡顿信息的确定,进而提高卡顿处理的效率。
本实施例还提供一种服务器,如图7所示,是本申请实施例提供的一种服务器的结构示意图,包括:接收单元701,用于接收终端设备发送的卡顿信息,所述卡顿信息包括所述卡顿帧和所述多个执行函数的函数执行时间,所述函数执行时间用于指示程序运行的卡顿情况;
确定单元702,用于确定满足预设条件的所述函数执行时间,并确定对应的程序帧;
优化单元703,用于根据预设规则处理所述程序帧并得出优化报告。
本申请实施例还提供了一种卡顿处理装置,请参阅图8,图8是本申请实施例提供的另一种卡顿处理装置的结构示意图,该卡顿处理装置800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processing units,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对卡顿处理装置中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在卡顿处理装置800上执行存储介质830中的一系列指令操作。
卡顿处理装置800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作***841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由卡顿处理装置所执行的步骤可以基于该图8所示的卡顿处理装置结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有卡顿处理指令,当其在计算机上运行时,使得计算机执行如前述图2至图5所示实施例描述的方法中卡顿处理装置所执行的步骤。
本申请实施例中还提供一种包括卡顿处理指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2至图5所示实施例描述的方法中卡顿处理装置所执行的步骤。
本申请实施例还提供了一种卡顿处理***,所述卡顿处理***可以包含图6或图8所描述实施例中的卡顿处理装置,或者图7所描述的服务器。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,卡顿处理装置,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
另外,上述卡顿处理的方法和装置还可以应用于数据共享***中,参见图9A所示的数据共享***,数据共享***900是指用于进行节点与节点之间数据共享的***,该数据共享***中可以包括多个节点901,多个节点901可以是指数据共享***中各个客户端,其中,每个客户端运行于基于本申请方法对应的终端设备上。每个节点901在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享***内的共享数据。为了保证数据共享***内的信息互通,数据共享***中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享***中的任意节点接收到输入信息时,数据共享***中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享***中全部节点上存储的数据均一致。
对于数据共享***中的每个节点,均具有与其对应的节点标识,而且数据共享***中的每个节点均可以存储有数据共享***中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享***中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1节点与节点标识对应关系
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
数据共享***中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图9B,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在生成区块链中的各个区块时,参见图9C,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享***中其他节点的节点标识,将新生成的区块分别发送给其所在的数据共享***中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (6)
1.一种程序卡顿的处理方法,其特征在于,包括:
终端设备确定程序负载的引擎,所述终端设备确定所述引擎对应的通用函数执行入口,所述终端设备通过所述通用函数执行入口获取所述程序运行时多个帧的执行时间;
所述终端设备根据帧卡顿识别模型确定所述程序帧中的卡顿帧,所述卡顿帧包括多个执行函数,所述帧卡顿识别模型基于时延阈值设定,所述终端设备根据帧卡顿识别模型确定所述程序帧中的卡顿帧,包括:所述终端设备获取所述程序帧的所述函数执行时间;所述终端设备若所述函数执行时间大于所述时延阈值,则确定所述程序帧为所述卡顿帧,还包括:根据程序的类型对所述帧卡顿识别模型的时延阈值进行调整;
所述终端设备确定所述卡顿帧的栈帧,所述终端设备根据所述栈帧获取所述栈帧所属的执行函数、执行函数参数信息或所述执行函数代码的起始地址,以记录所述多个执行函数的函数执行时间,所述记录所述多个执行函数的函数执行时间,包括:所述终端设备确定所述多个执行函数之间的调用关系,以确定函数层级;所述终端设备根据所述函数层级分别记录各层级下执行函数的函数执行时间;
所述终端设备上传卡顿信息至服务器,以使所述服务器收集历史处理记录,若当前确定的卡顿帧中包括的执行函数存在对应的历史处理记录,则自动关联对应的所述历史处理记录,并根据所述历史处理记录进行优化;若不存在对应的历史处理记录,则生成相关文件,以对所述程序的卡顿进行处理,所述历史处理记录是服务器在多次测试过程中保存的卡顿帧处理情况,至少包括对于函数的优化处理操作的集合,所述卡顿信息包括所述卡顿帧和所述多个执行函数的函数执行时间;
还包括:
所述终端设备显示卡顿处理的显示界面,所述显示界面中包括多个场景的卡顿处理过程,所述显示界面分别列出各场景下卡顿情况以及卡顿帧的数量;
响应用户的触发操作,所述终端设备在所述显示界面中显示出相关场景对应程序的版本号,相关场景下的累计卡顿延时,以及当前的处理状态。
2.根据权利要求1所述的方法,其特征在于,所述终端设备为区块链节点中的区块节点设备。
3.一种程序卡顿的处理方法,其特征在于,包括:
服务器接收终端设备发送的卡顿信息,所述卡顿信息包括卡顿帧和所述卡顿帧中包括的多个执行函数的函数执行时间,所述函数执行时间用于指示程序运行的卡顿情况,所述卡顿帧是所述终端设备确定程序负载的引擎,确定所述引擎对应的通用函数执行入口,通过所述通用函数执行入口获取所述程序运行时所述多个帧的执行时间,根据帧卡顿识别模型从所述程序帧中确定的,所述帧卡顿识别模型基于时延阈值设定,所述确定程序帧中的卡顿帧的方式包括:所述终端设备获取所述程序帧的所述函数执行时间;所述终端设备若所述函数执行时间大于所述时延阈值,则确定所述程序帧为所述卡顿帧,还包括:根据程序的类型对所述帧卡顿识别模型的时延阈值进行调整;所述函数执行时间是所述终端设备确定所述卡顿帧的栈帧,根据所述栈帧获取所述栈帧所属的执行函数、执行函数参数信息或所述执行函数代码的起始地址而记录的,所述函数执行时间的记录方式包括:所述终端设备确定所述多个执行函数之间的调用关系,以确定函数层级;所述终端设备根据所述函数层级分别记录各层级下执行函数的函数执行时间;
所述服务器确定满足预设条件的所述函数执行时间,并确定对应的程序帧;
所述服务器收集历史处理记录,若当前确定的卡顿帧中包括的执行函数存在对应的历史处理记录,则自动关联对应的所述历史处理记录,并根据所述历史处理记录进行优化;若不存在对应的历史处理记录,则生成相关文件,根据预设规则处理所述程序帧并得出优化报告,所述历史处理记录是服务器在多次测试过程中保存的卡顿帧处理情况,至少包括对于函数的优化处理操作的集合;
还包括:卡顿处理的显示界面,所述卡顿处理的显示界面显示在所述终端设备,所述显示界面中包括多个场景的卡顿处理过程,所述显示界面分别列出各场景下卡顿情况以及卡顿帧的数量;响应用户的触发操作,所述终端设备在所述显示界面中显示出相关场景对应程序的版本号,相关场景下的累计卡顿延时,以及当前的处理状态。
4.一种程序卡顿的处理装置,其特征在于,包括:
获取单元,用于确定程序负载的引擎,确定所述引擎对应的通用函数执行入口,通过所述通用函数执行入口获取所述程序运行时多个帧的执行时间;
确定单元,用于根据帧卡顿识别模型确定所述程序帧中的卡顿帧,所述卡顿帧包括多个执行函数,所述帧卡顿识别模型基于时延阈值设定,终端设备根据帧卡顿识别模型确定所述程序帧中的卡顿帧,包括:所述终端设备获取所述程序帧的所述函数执行时间;所述终端设备若所述函数执行时间大于所述时延阈值,则确定所述程序帧为所述卡顿帧,还包括:根据程序的类型对所述帧卡顿识别模型的时延阈值进行调整;
记录单元,用于确定所述卡顿帧的栈帧,根据所述栈帧获取所述栈帧所属的执行函数、执行函数参数信息或所述执行函数代码的起始地址,以记录所述多个执行函数的函数执行时间,所述记录所述多个执行函数的函数执行时间,包括:所述终端设备确定所述多个执行函数之间的调用关系,以确定函数层级;所述终端设备根据所述函数层级分别记录各层级下执行函数的函数执行时间;
处理单元,用于设备上传卡顿信息至服务器,以使所述服务器收集历史处理记录,若当前确定的卡顿帧中包括的执行函数存在对应的历史处理记录,则自动关联对应的所述历史处理记录,并根据所述历史处理记录进行优化;若不存在对应的历史处理记录,则生成相关文件,以对所述程序的卡顿进行处理,所述历史处理记录是服务器在多次测试过程中保存的卡顿帧处理情况,至少包括对于函数的优化处理操作的集合,所述卡顿信息包括所述卡顿帧和所述多个执行函数的函数执行时间;
所述装置还用于:
显示卡顿处理的显示界面,所述显示界面中包括多个场景的卡顿处理过程,所述显示界面分别列出各场景下卡顿情况以及卡顿帧的数量;
响应用户的触发操作,在所述显示界面中显示出相关场景对应程序的版本号,相关场景下的累计卡顿延时,以及当前的处理状态。
5.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行权利要求1至2任一项所述的卡顿处理方法。
6.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述权利要求1至2任一项 所述的卡顿处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911096865.1A CN110825466B (zh) | 2019-11-11 | 2019-11-11 | 一种程序卡顿的处理方法以及卡顿处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911096865.1A CN110825466B (zh) | 2019-11-11 | 2019-11-11 | 一种程序卡顿的处理方法以及卡顿处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110825466A CN110825466A (zh) | 2020-02-21 |
CN110825466B true CN110825466B (zh) | 2021-11-02 |
Family
ID=69554010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911096865.1A Active CN110825466B (zh) | 2019-11-11 | 2019-11-11 | 一种程序卡顿的处理方法以及卡顿处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825466B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113041610A (zh) * | 2020-10-15 | 2021-06-29 | 蒋海斌 | 应用于网络游戏场景的数据流量处理方法及网游服务器 |
CN113409816B (zh) * | 2021-06-15 | 2024-04-19 | 腾讯数码(深圳)有限公司 | 音频卡顿检测方法、装置、计算机设备和存储介质 |
CN117093441A (zh) * | 2023-07-12 | 2023-11-21 | 荣耀终端有限公司 | 电子设备的性能监控方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201318666D0 (en) * | 2012-10-22 | 2013-12-04 | Palantir Technologies Inc | System and method for batch evaluation programs |
CN104965773A (zh) * | 2015-07-09 | 2015-10-07 | 网易(杭州)网络有限公司 | 终端、卡顿检测方法、装置及游戏卡顿检测方法、装置 |
CN108512695A (zh) * | 2018-03-12 | 2018-09-07 | 腾讯音乐娱乐科技(深圳)有限公司 | 监控应用卡顿的方法及装置 |
CN109101307A (zh) * | 2018-07-20 | 2018-12-28 | 广东巴拿赫大数据科技有限公司 | 基于移动终端的“一键平安”微信小程序后台组合图片处理方法 |
CN109343997A (zh) * | 2018-10-31 | 2019-02-15 | Oppo广东移动通信有限公司 | 卡顿检测方法、装置、终端及存储介质 |
CN109842533A (zh) * | 2019-01-17 | 2019-06-04 | 珠海金山网络游戏科技有限公司 | 一种检测游戏卡顿帧的方法及装置 |
CN109840177A (zh) * | 2017-11-24 | 2019-06-04 | 腾讯科技(深圳)有限公司 | 一种卡顿的处理方法及相关设备 |
CN109902011A (zh) * | 2019-02-28 | 2019-06-18 | 深圳乐信软件技术有限公司 | 一种软件卡顿监测方法、装置、设备和存储介质 |
CN110300327A (zh) * | 2019-04-18 | 2019-10-01 | 深圳市腾讯网域计算机网络有限公司 | 一种游戏客户端性能分析方法、装置、终端及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1280056B1 (en) * | 2001-07-26 | 2011-10-05 | STMicroelectronics Limited | Generation of debugging information |
EP1437888A3 (en) * | 2003-01-06 | 2007-11-14 | Samsung Electronics Co., Ltd. | Video recording and reproducing apparatus |
JP4342356B2 (ja) * | 2004-03-22 | 2009-10-14 | 任天堂株式会社 | ゲームシステム、ゲーム装置、およびゲームプログラム |
CN104991855B (zh) * | 2015-06-16 | 2018-09-11 | 广州华多网络科技有限公司 | 界面卡顿处理方法及装置 |
CN106649063B (zh) * | 2016-11-22 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 用于监测程序运行时耗时数据的方法及*** |
CN108874672B (zh) * | 2018-06-19 | 2022-04-22 | 腾讯科技(深圳)有限公司 | 应用程序异常定位方法、装置、设备及存储介质 |
-
2019
- 2019-11-11 CN CN201911096865.1A patent/CN110825466B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201318666D0 (en) * | 2012-10-22 | 2013-12-04 | Palantir Technologies Inc | System and method for batch evaluation programs |
CN104965773A (zh) * | 2015-07-09 | 2015-10-07 | 网易(杭州)网络有限公司 | 终端、卡顿检测方法、装置及游戏卡顿检测方法、装置 |
CN109840177A (zh) * | 2017-11-24 | 2019-06-04 | 腾讯科技(深圳)有限公司 | 一种卡顿的处理方法及相关设备 |
CN108512695A (zh) * | 2018-03-12 | 2018-09-07 | 腾讯音乐娱乐科技(深圳)有限公司 | 监控应用卡顿的方法及装置 |
CN109101307A (zh) * | 2018-07-20 | 2018-12-28 | 广东巴拿赫大数据科技有限公司 | 基于移动终端的“一键平安”微信小程序后台组合图片处理方法 |
CN109343997A (zh) * | 2018-10-31 | 2019-02-15 | Oppo广东移动通信有限公司 | 卡顿检测方法、装置、终端及存储介质 |
CN109842533A (zh) * | 2019-01-17 | 2019-06-04 | 珠海金山网络游戏科技有限公司 | 一种检测游戏卡顿帧的方法及装置 |
CN109902011A (zh) * | 2019-02-28 | 2019-06-18 | 深圳乐信软件技术有限公司 | 一种软件卡顿监测方法、装置、设备和存储介质 |
CN110300327A (zh) * | 2019-04-18 | 2019-10-01 | 深圳市腾讯网域计算机网络有限公司 | 一种游戏客户端性能分析方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110825466A (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825466B (zh) | 一种程序卡顿的处理方法以及卡顿处理装置 | |
CN106294120B (zh) | 测试代码的方法、设备和计算机程序产品 | |
US7409316B1 (en) | Method for performance monitoring and modeling | |
US7082381B1 (en) | Method for performance monitoring and modeling | |
CN110704231A (zh) | 一种故障处理方法及装置 | |
CN110275992B (zh) | 应急处理方法、装置、服务器及计算机可读存储介质 | |
CN110647447B (zh) | 用于分布式***的异常实例检测方法、装置、设备和介质 | |
US7369967B1 (en) | System and method for monitoring and modeling system performance | |
CN111464376A (zh) | 网站可用性的监测方法及装置、存储介质、计算机设备 | |
CN106390451B (zh) | 对游戏服务器的容量进行测试的方法及装置 | |
CN111181800A (zh) | 测试数据处理方法、装置、电子设备及存储介质 | |
US7617313B1 (en) | Metric transport and database load | |
CN107203464B (zh) | 业务问题的定位方法以及装置 | |
CN111190817B (zh) | 软件缺陷的处理方法及装置 | |
CN113204692A (zh) | 数据处理任务执行进度的监测方法及装置 | |
CN111209181A (zh) | 回归测试方法、***、装置以及计算机存储介质 | |
CN109087107B (zh) | 基于分布式内存数据库的实时监控方法、***及电子设备 | |
CN117061335A (zh) | 云平台设备健康管控方法、装置、存储介质和电子设备 | |
CN109462510B (zh) | 一种cdn节点质量评估的方法及装置 | |
CN111984519A (zh) | 一种用于业务***的测试方法及其装置 | |
CN111008114A (zh) | 一种磁盘分区监控方法、装置、设备及可读存储介质 | |
CN110865940B (zh) | 一种程序卡顿定位的方法以及相关装置 | |
CN111679924B (zh) | 构件化软件***可靠性仿真方法、装置及电子设备 | |
CN114416420A (zh) | 设备问题反馈方法和*** | |
CN112346994B (zh) | 一种测试信息关联方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40022531 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |