CN110908864B - 一种设备卡顿的处理方法、装置、设备和介质 - Google Patents

一种设备卡顿的处理方法、装置、设备和介质 Download PDF

Info

Publication number
CN110908864B
CN110908864B CN201911096483.9A CN201911096483A CN110908864B CN 110908864 B CN110908864 B CN 110908864B CN 201911096483 A CN201911096483 A CN 201911096483A CN 110908864 B CN110908864 B CN 110908864B
Authority
CN
China
Prior art keywords
jamming
frame
time
equipment
processing
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
Application number
CN201911096483.9A
Other languages
English (en)
Other versions
CN110908864A (zh
Inventor
彭斌
魏学峰
严明
周洪斌
徐宇挺
程景
刘俊辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911096483.9A priority Critical patent/CN110908864B/zh
Publication of CN110908864A publication Critical patent/CN110908864A/zh
Application granted granted Critical
Publication of CN110908864B publication Critical patent/CN110908864B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种设备卡顿的处理方法、装置、设备和介质,所述方法可以获取处理每个帧数据时需要调用的帧循环函数的调用时刻,根据任意两个调用时刻,获得帧循环函数的调用时间间隔,即帧数据的单帧处理时间。若单帧处理时间大于预设的处理时间上限值,确定设备发生卡顿。识别到卡顿后,对卡顿进行分类,记录卡顿时长和卡顿场景,将记录的卡顿信息进行处理,对卡顿进行修复。所述方法通过帧循环函数的调用时刻,确定帧数据的单帧处理时间,从而提高对卡顿检测的时效性,能够精确定位发生卡顿的帧数据。

Description

一种设备卡顿的处理方法、装置、设备和介质
技术领域
本发明涉及设备检测的领域,尤其涉及一种设备卡顿的处理方法、装置、设备和介质。
背景技术
帧时间通常指的是软件渲染每个帧所需的时间。具体而言,这一时间通过基准测试运行时间乘以应用的平均每秒帧数得出,或者在基准测试运行期间渲染的总帧数,而非应用实际运行的秒数。在评估软件性能时,帧时间是重要的考虑因素。
目前,在帧耗时测试方案上,得到的帧耗时的方法是,***每16ms去监测当前屏幕的画面是否有绘制完成,如果绘制未完成,隔16ms再监测一次,监测到绘制完后就记录一下此帧的绘制时间。通过执行程序指令完成上述操作,得到最近最多128帧画面的绘制时间,得到过后对应的帧时间会从缓存里面清除,下次可以继续获取新的帧绘制时间。
现有技术中取出来的帧耗时延迟较高,是渲染过的帧耗时才能够在缓存里面取到,比如渲染了10帧后,才能一次取到10帧的数据,就因此不能及时地识别出游戏的卡顿情况,并且如果采样的频率过高,会影响后续的测试性能。此外,通过上述方法获取的帧耗时有误差,因为是每隔16ms的时间去监测的,得到的帧耗时时间都是16ms的倍数,但是实际的帧耗时时间有可能在采样前已经结束了。
上述方法中还存在采样得到的帧耗时数据较为统一,没有区别不同的卡顿情况,因此不能有针对性地对卡顿情况进行记录,使得后续工作人员修复卡顿时的工作量增加,效率降低。
发明内容
本发明提供了一种设备卡顿的处理方法、装置、设备和介质。可以提高对设备卡顿检测的时效性,精确定位发生卡顿的帧数据,并可以区分不同的卡顿情况。
一方面,本发明提供了一种设备卡顿的处理方法,所述方法包括:
确定设备在处理帧数据时运行的帧循环函数,所述帧循环函数为开始处理每个帧数据时需要调用的函数;
基于调用所述帧循环函数的时间间隔,获得所述帧数据的单帧处理时间;
若所述单帧处理时间大于预设的处理上限时间,确定所述设备发生卡顿;
确定所述设备发生卡顿时的卡顿类型和卡顿时长,所述卡顿类型为表征发生卡顿的帧数据数目的信息,所述卡顿时长为卡顿持续的时间;
保存所述设备发生卡顿时的卡顿场景,所述卡顿场景为发生卡顿的帧数据显示画面的截图场景;
根据所述卡顿类型、卡顿时长和卡顿场景,对设备发生的卡顿进行处理。
另一方面提供了一种设备卡顿的处理装置,所述装置包括:帧循环函数确定模块、单帧处理时间计算模块、设备卡顿判断模块、卡顿信息获取模块、卡顿场景保存模块和卡顿处理模块;
所述帧循环函数确定模块用于确定设备在处理帧数据时运行的帧循环函数,所述帧循环函数为开始处理每个帧数据时需要调用的函数;
所述单帧处理时间计算模块用于基于调用所述帧循环函数的时间间隔,获得所述帧数据的单帧处理时间;
所述设备卡顿判断模块用于若所述单帧处理时间大于预设的处理上限时间,确定所述设备发生卡顿;
所述卡顿信息获取模块用于确定所述设备发生卡顿时的卡顿类型和卡顿时长,所述卡顿类型为表征发生卡顿的帧数据数目的信息,所述卡顿时长为卡顿持续的时间;
所述卡顿场景保存模块用于保存所述设备发生卡顿时的卡顿场景,所述卡顿场景为发生卡顿的帧数据显示画面的截图场景;
所述卡顿处理模块用于根据所述卡顿类型、卡顿时长和卡顿场景,对设备发生的卡顿进行处理。
另一方面提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述所述的一种设备卡顿的处理方法。
另一方面提供了一种存储介质,其特征在于,所述存储介质包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述所述的一种设备卡顿识别方法。
本发明提供的一种设备卡顿的处理方法、装置、设备和介质,所述方法获取处理每个帧数据时需要调用的帧循环函数的调用时刻,根据任意两个调用时刻,获得帧循环函数的调用时间间隔,即帧数据的单帧处理时间。若单帧处理时间大于预设的处理时间上限值,确定设备发生卡顿。识别到卡顿后,对卡顿进行分类,记录卡顿时长和卡顿场景,将记录的卡顿信息进行处理,对卡顿进行修复。所述方法通过帧循环函数的调用时刻,确定帧数据的单帧处理时间,从而做到对卡顿进行及时检测,能够精确定位发生卡顿的帧数据。所述方法通过确定帧数据的单帧处理时间,还可以进行即时反馈的卡顿测试和每秒传输帧数的计算,使得在处理卡顿时能够根据需要获得相应的数据,工作人员因此可以更加有针对性地去处理卡顿,提高了处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种设备卡顿的处理方法的应用场景示意图;
图2为本发明实施例提供的一种设备卡顿的处理方法的流程图;
图3为本发明实施例提供的一种设备卡顿的处理方法中获得帧数据的单帧处理时间的方法的流程图;
图4为本发明实施例提供的一种设备卡顿的处理方法中通过第一时间点和第二时间点确定调用时刻间隔的方法的流程图;
图5为本发明实施例提供的一种设备卡顿的处理方法中通过第二时间点和第三时间点确定调用时刻间隔的方法的流程图;
图6为本发明实施例提供的一种设备卡顿的处理方法中选择处理上限时间的方法的流程图;
图7为本发明实施例提供的一种设备卡顿的处理方法中确定所述设备发生卡顿时的卡顿类型和卡顿时长的方法流程图;
图8为本发明实施例提供的一种设备卡顿的处理方法中确定设备发生卡顿时的卡顿时长的方法的流程图;
图9为本发明实施例提供的一种设备卡顿的处理方法中的界面示意图;
图10为本发明实施例提供的一种设备卡顿的处理方法中卡顿记录界面示意图;
图11为本发明实施例提供的一种设备卡顿的处理装置的结构示意图;
图12为本发明实施例提供的一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。而且,术语“第一”、“第二”等适用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
请参见图1,其显示了本发明实施例提供的一种设备卡顿的处理方法的应用场景示意图,所述应用场景包括被测终端110和测试终端120,所述被测终端110为用于运行程序的设备,可以显示画面卡顿的情况,所述测试终端用于识别卡顿,并对卡顿进行保存和处理。
在本发明实施例中,所述被测终端110包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。本申请实施例中被测终端 110上运行的操作***可以包括但不限于安卓***、IOS***、linux、Unix、 windows等。所述被测终端110用于运行程序,当程序运行中发生卡顿时,由测试终端120进行识别和处理。
在本发明实施例中,所述测试终端120包括服务器、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。所述测试终端120用于在所述被测终端110运行程序时,对运行程序中的卡顿进行识别,并保存卡顿时长、卡顿类型和卡顿场景,便于工作人员对卡顿进行处理。
请参见图2,其显示了一种设备卡顿的处理方法,可应用于终端侧,所述方法包括:
S210.确定设备在处理帧数据时运行的帧循环函数,所述帧循环函数为处理每个帧数据时需要调用的函数;
具体地,所述设备运行的场景可以为所述帧循环函数可以是在虚幻4引擎(UnrealEngine 4,UE4)上进行的游戏场景测试或者应用程序场景测试等。
所述处理帧数据时运行的帧循环函数可以是引擎逻辑帧循环函数 UWorld::Tick函数,Tick指的是以规则的时间间隔在场景中的对象或者组件上执行指定的代码,时间间隔通常为每帧一次。因此在处理每一帧开始的时候,都会调用引擎逻辑帧循环函数UWorld::Tick函数,当一帧数据渲染结束后,又会重复调用UWorld::Tick开始下一帧的处理,因此可以通过所述 UWorld::Tick函数来进行单帧处理时间的计算。
S220.基于调用所述帧循环函数的时间间隔,获得所述帧数据的单帧处理时间;
进一步地,请参见图3,所述基于所述帧循环函数,对调用所述帧循环函数的时间间隔进行计算,获得所述帧数据的单帧处理时间包括:
S310.监听所述帧循环函数的调用,获取任两个相邻的调用操作数的调用间隔时间;
S320.基于所述调用间隔时间,获得所述帧数据的单帧处理时间。
具体地,所述帧循环函数每一帧都会被调用一次,因此可以通过帧循环函数计算单帧数据进行渲染处理的时间,即帧数据的单帧处理时间。
通过两次调用帧循环函数的时间间隔,可以获得单帧数据进行渲染处理的时间。监听帧循环函数的调用,并记录连续的两次调用操作的时间点,就可以通过时间点之间的差值得到单帧处理时间。
监听帧循环函数的调用的时候可以使用hook函数,在进行监听帧循环函数之前,将hook函数注入到所需要hook的进程空间,所需要hook的进程空间即帧循环函数,修改帧循环函数内存中的进程代码,替换其过程表的符号地址,从而达到监控以及远程进程关键函数挂钩。通过hook函数对帧循环函数进行监听,可以获取帧循环函数被调用的时间点,记录所述时间点,就可以进行单帧处理时间的计算。
通过任意两个帧循环函数被调用的时间点,可以准确地获取帧数据的单帧处理时间,从而能够对发生卡顿的帧数据进行准确地定位,便于工作人员进行卡顿的修复。
具体进行调用间隔时间的计算方法如下所示:
进一步地,请参见图4,所述基于所述调用间隔时间,获得所述帧数据的单帧处理时间包括:
S410.获取当前帧数据的上一帧数据处理时调用所述帧循环函数的第一时间点;
S420.获取当前帧数据处理时调用所述帧循环函数的第二时间点;
S430.基于所述第一时间点和所述第二时间点,获取上一帧数据的单帧处理时间。
具体地,在进行单帧处理时间计算时,根据选择的时间点的不同,可以计算当前帧数据的上一帧数据的单帧处理时间。计算上一帧数据时,选择的时间点是上一帧数据处理时调用帧循环函数的时间点,即第一时间点,和当前帧数据处理时调用帧循环函数的时间点,即第二时间点。基于所述第一时间点和所述第二时间点的差值,获取的是上一帧数据的单帧处理时间。
例如,所述上一帧数据调用帧循环函数的时间点是程序运行了1103ms 的时刻,所述当前帧数据调用帧循环函数的时间点是程序运行了1119ms的时刻,那么根据第一时间点和第二时间点的差值,可以得到上一帧数据的单帧处理时间为16ms。
在识别卡顿时,如果通过这种时间点的选择方法获得的单帧处理时间超过了处理上限时间,那么是上一帧数据发生了卡顿。
通过上一帧数据中帧循环函数被调用的时间点和当前帧数据中帧循环函数被调用的时间点,可以准确地获取帧数据的单帧处理时间,从而能够对发生卡顿的帧数据进行准确地定位,便于工作人员进行卡顿的修复。
进一步地,请参见图5,所述基于任两个相邻的所述帧循环函数的调用时间,获得帧数据的单帧处理时间包括:
S510.获取当前帧数据处理时调用所述帧循环函数的第二时间点;
S520.获取当前帧数据的下一帧数据处理时调用所述帧循环函数的第三时间点;
S530.基于所述第二时间点和所述第三时间点,获取当前帧数据的单帧处理时间。
具体地,在进行单帧处理时间计算时,根据选择的时间点的不同,可以计算当前帧数据的单帧处理时间。计算当前帧数据时,选择的时间点是当前帧数据处理时调用帧循环函数的时间点,即第二时间点,和当前帧数据的下一帧数据处理时调用帧循环函数的时间点,即第三时间点。基于所述第二时间点和所述第三时间点的差值,获取的是当前帧数据的单帧处理时间。
例如,所述当前帧数据调用帧循环函数的时间点是程序运行了1119ms 的时刻,所述当前帧数据的下一帧数据调用帧循环函数的时间点是程序运行了1139ms的时刻,那么根据第一时间点和第二时间点的差值,可以得到上一帧数据的单帧处理时间为20ms。
在识别卡顿时,如果通过这种时间点的选择方法获得的单帧处理时间超过了处理上限时间,那么是当前帧数据发生了卡顿。
通过当前帧数据中帧循环函数被调用的时间点和下一帧数据中帧循环函数被调用的时间点,可以准确地获取帧数据的单帧处理时间,从而能够对发生卡顿的帧数据进行准确地定位,便于工作人员进行卡顿的修复。
S230.若所述单帧处理时间大于预设的处理上限时间,确定所述设备发生卡顿;
进一步地,请参见图6,所述若所述单帧处理时间大于预设的处理上限时间,确定所述设备发生卡顿之前,还包括:
S610.基于设备的运行模式,设置不同运行模式下的处理上限时间;
S620.根据设备的当前运行模式,选择与所述当前运行模式匹配的当前模式处理上限时间。
具体地,设备在不同的运行模式下,对流畅程度的要求是不同的,例如在游戏中的战斗场景下,流畅程度的要求较高,而如果是应用程序的开启和使用,或者是游戏的日常场景下,流畅程度的要求会适应性地有所下降。因此在不同的模式下,可以设置不同的处理上限时间,适应不同的流畅度需求。所述处理上限时间即使得设备能够流畅运行的单帧处理时间的上限值。
例如在游戏中的战斗场景下,假设达到流畅程度的帧速率的下限值为 60Hz,根据所述帧速率的下限值可以算出处理上限时间,所述处理上限时间约为16ms,因此在游戏中的战斗场景下,若单帧处理时间高于16ms,那么可以确定当前发生了卡顿。
若在应用程序运行的场景下,假设达到流畅程度的帧速率的下限值为 30Hz,根据所述帧速率的下限值可以算出处理上限时间,所述处理上限时间约为33ms,因此在应用程序运行的场景下,若单帧处理时间高于33ms,那么可以确定当前发生了卡顿。
在设备进行测试时,可以预先选择模式,例如选择战斗场景测试或者日常场景测试,可以基于不同的模式获取所述模式匹配的处理上限时间,以针对不同的模式进行流畅度的测试,得到更好的流畅度测试效果。
S240.确定所述设备发生卡顿时的卡顿类型和卡顿时长,所述卡顿类型为表征发生卡顿的帧数据数目的信息,所述卡顿时长为卡顿持续的时间;
进一步地,请参见图7,所述确定所述设备发生卡顿时的卡顿类型和卡顿时长包括:
S710.获取所述设备发生卡顿时帧数据的卡顿帧数目信息;
S720.基于所述卡顿帧数目信息,确定设备发生卡顿的卡顿类型;
S730.基于所述单帧处理时间,确定所述设备发生卡顿时的卡顿时长。
具体地,在设备发生卡顿时,卡顿的帧数据可能为一帧,多帧或者持续卡顿。因此可以根据卡顿的帧数据的卡顿帧数目信息,对设备卡顿的类型进行区分。如果卡顿的帧数只有一张,那么就是单帧卡顿的类型,即毛刺。如果卡顿的帧数有多张,那么就是多帧卡顿的类型。如果卡顿帧的数目一直增加,那么出现了卡顿帧无法加载的死机情况,那么说明出现持续卡顿。在持续卡顿中,卡顿时长也会一直增加,因此也可以根据卡顿时长辅助进行持续卡顿的判断。
例如在一次测试中,第一次卡顿是单个帧数据发生卡顿,第二次卡顿是多个帧数据发生卡顿,第三次卡顿是单个帧数据发生卡顿,第四次卡顿是持续卡顿,那么在卡顿的记录中,第一次卡顿和第三次卡顿为同一类型,即单帧卡顿的类型,第二次卡顿是多帧卡顿的类型,第四次卡顿是持续卡顿的类型。
对设备运行时发生的卡顿进行分类,可以明确卡顿发生时的具体情况,从而有针对性地解决卡顿的问题。
进一步地,请参见图8,所述基于所述单帧处理时间,确定所述设备发生卡顿时的卡顿时长包括:
S810.计算发生卡顿的帧数据单帧处理时间的和值;
S820.根据计算的结果,确定所述设备发生卡顿时的卡顿时长。
具体地,通过计算发生卡顿的所有帧数据的单帧处理时间,并将所有卡顿的帧数据的单帧处理时间相加,得到的和值即为设备发生卡顿时的卡顿时长。可以相加的单帧处理时间指的是一次卡顿时的单帧处理时间,发生卡顿的帧数据需要是连续的帧数据,例如第一次卡顿时发生2帧数据卡顿,单帧处理时间分别为147ms和179ms,之后程序继续运行,出现第二次卡顿时发生3帧数据卡顿,单帧处理时间为136ms、199ms和185ms,那么第一次卡顿的卡顿时长为326ms,第二次卡顿的时长为540ms。
将卡顿时的情况细分为卡顿类型和卡顿时长保存,可以准确记录发生卡顿时的情况,便于工作人员在后续处理中了解卡顿发生的原因和严重程度,可以更好地对卡顿进行修复。
S250.保存所述设备发生卡顿时的卡顿场景,所述卡顿场景为发生卡顿的帧数据显示画面的截图场景;
具体地,在设备发生卡顿时,可以对卡顿的画面进行截图保存,获取发生卡顿时的卡顿场景。卡顿场景、卡顿类型和卡顿时长这些卡顿记录可以即时反馈给工作人员进行修复,也可以在测试中保存每次卡顿记录,在测试结束后统一反馈全部的卡顿记录给工作人员进行修复。
由于所述方法可以计算单帧处理时间,因此也可以准确计算画面每秒传输帧数(Frames Per Second,FPS)。
S260.根据所述卡顿类型、卡顿时长和卡顿场景,对设备发生的卡顿进行处理。
在一个具体的实施例中,请参见图9的界面示意图,所述方法可以应用于游戏的战斗场景测试。在被测设备上打开游戏,选择测试模式为战斗场景测试,对战斗场景下游戏的流畅程度进行测试。通过预先***的hook函数获取引擎逻辑帧函数UWorld::Tick被调用的时刻,记录任两个相邻的被调用时刻,获取所述任两个相邻的被调用时刻之间的时间间隔,即为帧数据的单帧处理时间。将帧数据的单帧处理时间与处理时间上限值进行对比,判断处理该帧数据时是否发生卡顿。
请参见图10的卡顿记录界面示意图,根据卡顿的帧数据的数目判断卡顿类型,一张帧数据卡顿就是单帧数据卡顿,多张帧数据卡顿就是多帧数据卡顿。根据卡顿帧数的单帧处理时间的和值,计算得到卡顿的时长,同时可以在卡顿时进行截图,记录卡顿场景。将所述卡顿类型、卡顿时长和卡顿场景作为一次卡顿记录保存。即时反馈或者在测试完毕后反馈给工作人员,工作人员可以根据卡顿记录分析发生卡顿的原因,对卡顿进行修复。
具体地,所述设备卡顿的处理方法可以集成为卡顿计工具,在实际进行测试时通过卡顿计工具拉起待测试的应用程序并进入到场景中,即可对所述应用的场景是否发生卡顿进行即时测试。
具体地,所述任两个相邻的被调用时刻可以是当前帧数据的上一帧数据调用UWorld::Tick的时间点和当前帧数据调用UWorld::Tick的时间点。计算前后两个调用操作的时间点的差值,以获得上一帧数据的单帧处理时间。
具体地,所述任两个相邻的被调用时刻可以是当前帧数据调用 UWorld::Tick的时间点和当前帧数据的下一帧数据调用UWorld::Tick的时间点。计算前后两个调用操作的时间点的差值,以获得当前帧数据的单帧处理时间。
本发明实施例提出了一种设备卡顿的处理方法,所述方法获取处理每个帧数据时需要调用的帧循环函数的调用时刻,根据任意两个调用时刻,获得帧循环函数的调用时间间隔,即帧数据的单帧处理时间。若单帧处理时间大于预设的处理时间上限值,确定设备发生卡顿。识别到卡顿后,对卡顿进行分类,记录卡顿时长和卡顿场景,将记录的卡顿信息进行处理,对卡顿进行修复。所述方法通过帧循环函数的调用时刻,确定帧数据的单帧处理时间,从而做到对卡顿进行及时检测,能够精确定位发生卡顿的帧数据。所述方法通过确定帧数据的单帧处理时间,还可以进行即时反馈的卡顿测试和每秒传输帧数的计算,使得在处理卡顿时能够根据需要获得相应的数据,工作人员因此可以更加有针对性地去处理卡顿,提高了处理的效率。
本发明实施例还提供了一种设备卡顿的处理装置,请参见图11,所述装置包括:帧循环函数确定模块1110、单帧处理时间计算模块1120、设备卡顿判断模块1130、卡顿信息获取模块1140、卡顿场景保存模块1150和卡顿处理模块1160;
所述帧循环函数确定模块1110用于确定设备在处理帧数据时运行的帧循环函数,所述帧循环函数为处理每个帧数据时需要调用的函数;
所述单帧处理时间计算模块1120用于基于调用所述帧循环函数的时间间隔,获得所述帧数据的单帧处理时间;
所述设备卡顿判断模块1130用于若所述单帧处理时间大于预设的处理上限时间,确定所述设备发生卡顿;
所述卡顿信息获取模块1140用于确定所述设备发生卡顿时的卡顿类型和卡顿时长,所述卡顿类型为表征发生卡顿的帧数据数目的信息,所述卡顿时长为卡顿持续的时间;
所述卡顿场景保存模块1150用于保存所述设备发生卡顿时的卡顿场景,所述卡顿场景为发生卡顿的帧数据显示画面的截图场景;
所述卡顿处理模块1160用于根据所述卡顿类型、卡顿时长和卡顿场景,对设备发生的卡顿进行处理。
进一步地,所述单帧处理时间计算模块包括监听单元和单帧处理时间获得单元:
所述监听单元用于监听所述帧循环函数的调用,获取任两个相邻的调用操作数的调用间隔时间;
所述单帧处理时间获得单元用于基于所述调用间隔时间,获得所述帧数据的单帧处理时间。
进一步地,所述装置还包括运行模式选择模块,所述运行模式选择模块包括处理上限时间设置单元和处理上限时间匹配单元:
所述处理上限时间设置单元用于基于设备的运行模式,设置不同运行模式下的处理上限时间;
所述处理上限时间匹配单元用于根据设备的当前运行模式,选择与所述当前运行模式匹配的当前模式处理上限时间。
进一步地,所述卡顿信息获取模块包括卡顿帧数获取单元、卡顿类型确定单元和卡顿时长确定单元:
所述卡顿帧数获取单元用于获取所述设备发生卡顿时帧数据的卡顿帧数目信息;
所述卡顿类型确定单元用于基于所述卡顿帧数目信息,确定设备发生卡顿的卡顿类型;
所述卡顿时长确定单元用于基于所述单帧处理时间,确定所述设备发生卡顿时的卡顿时长。
上述实施例中提供的装置可执行本发明任意实施例所提供方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的一种设备卡顿的处理方法。
本实施例还提供了一种计算机可读存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令由处理器加载并执行本实施例上述的一种设备卡顿的处理方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例还提供了一种设备,所述设备包括处理器和存储器,其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行本实施例上述的一种设备卡顿的处理方法。
所述设备可以为计算机终端、移动终端或服务器,所述设备还可以参与构成本发明实施例所提供的装置或***。如图12所示,移动终端12(或计算机终端12或服务器12)可以包括一个或多个(图中采用1202a、 1202b,……,1202n来示出)处理器1202(处理器1202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1204、以及用于通信功能的传输装置1206。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图12所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,移动设备12还可包括比图12中所示更多或者更少的组件,或者具有与图12所示不同的配置。
应当注意到的是上述一个或多个处理器1202和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到移动设备12(或计算机终端)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1204可用于存储应用软件的软件程序以及模块,如本发明实施例中所述的方法对应的程序指令/数据存储装置,处理器1202通过运行存储在存储器1204内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种基于自注意力网络的时序行为捕捉框生成方法。存储器1204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1204可进一步包括相对于处理器1202远程设置的存储器,这些远程存储器可以通过网络连接至移动设备12。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端12的通信供应商提供的无线网络。在一个实例中,传输装置1206包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置1206可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与移动设备12(或计算机终端)的用户界面进行交互。
本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤和顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的***或中断产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本实施例中所示出的结构,仅仅是与本申请方案相关的部分结构,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比示出的更多或更少的部件,或者组合某些部件,或者具有不同的部件的布置。应当理解到,本实施例中所揭露的方法、装置等,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分仅仅为一种逻辑功能的划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元模块的间接耦合或通信连接。
基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员还可以进一步意识到,结合本说明书所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但这种实现不应认为超出本发明的范围。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种设备卡顿的处理方法,其特征在于,所述方法包括:
确定设备在处理帧数据时运行的帧循环函数,所述帧循环函数为开始处理每个帧数据时需要调用的函数;
监听所述帧循环函数的调用,获取任两个相邻的调用操作数的调用间隔时间;
基于所述调用间隔时间,获得所述帧数据的单帧处理时间;
若所述单帧处理时间大于预设的处理上限时间,确定所述设备发生卡顿;
确定所述设备发生卡顿时的卡顿类型和卡顿时长,所述卡顿类型为表征发生卡顿的帧数据数目的信息,所述卡顿时长为卡顿持续的时间;
保存所述设备发生卡顿时的卡顿场景,所述卡顿场景为发生卡顿的帧数据显示画面的截图场景;
根据所述卡顿类型、卡顿时长和卡顿场景,对设备发生的卡顿进行处理。
2.根据权利要求1所述的一种设备卡顿的处理方法,其特征在于,所述基于所述调用间隔时间,获得所述帧数据的单帧处理时间包括:
获取当前帧数据的上一帧数据处理时调用所述帧循环函数的第一时间点;
获取当前帧数据处理时调用所述帧循环函数的第二时间点;
基于所述第一时间点和所述第二时间点,获取上一帧数据的单帧处理时间。
3.根据权利要求1所述的一种设备卡顿的处理方法,其特征在于,所述基于任两个相邻的所述帧循环函数的调用时间,获得帧数据的单帧处理时间包括:
获取当前帧数据处理时调用所述帧循环函数的第二时间点;
获取当前帧数据的下一帧数据处理时调用所述帧循环函数的第三时间点;
基于所述第二时间点和所述第三时间点,获取当前帧数据的单帧处理时间。
4.根据权利要求1所述的一种设备卡顿的处理方法,其特征在于,所述确定所述设备发生卡顿时的卡顿类型和卡顿时长包括:
获取所述设备发生卡顿时帧数据的卡顿帧数目信息;
基于所述卡顿帧数目信息,确定设备发生卡顿的卡顿类型;
基于所述单帧处理时间,确定所述设备发生卡顿时的卡顿时长。
5.根据权利要求4所述的一种设备卡顿的处理方法,其特征在于,所述基于所述单帧处理时间,确定所述设备发生卡顿时的卡顿时长包括:
计算发生卡顿的帧数据单帧处理时间的和值;
根据计算的结果,确定所述设备发生卡顿时的卡顿时长。
6.根据权利要求1所述的一种设备卡顿的处理方法,其特征在于,所述若所述单帧处理时间大于预设的处理上限时间,确定所述设备发生卡顿之前,还包括:
基于设备的运行模式,设置不同运行模式下的处理上限时间;
根据设备的当前运行模式,选择与所述当前运行模式匹配的当前模式处理上限时间。
7.一种设备卡顿的处理装置,其特征在于,所述装置包括:帧循环函数确定模块、单帧处理时间计算模块、设备卡顿判断模块、卡顿信息获取模块、卡顿场景保存模块和卡顿处理模块;
所述帧循环函数确定模块用于确定设备在处理帧数据时运行的帧循环函数,所述帧循环函数为开始处理每个帧数据时需要调用的函数;
所述单帧处理时间计算模块用于监听所述帧循环函数的调用,获取任两个相邻的调用操作数的调用间隔时间;并基于所述调用间隔时间,获得所述帧数据的单帧处理时间;
所述设备卡顿判断模块用于若所述单帧处理时间大于预设的处理上限时间,确定所述设备发生卡顿;
所述卡顿信息获取模块用于确定所述设备发生卡顿时的卡顿类型和卡顿时长,所述卡顿类型为表征发生卡顿的帧数据数目的信息,所述卡顿时长为卡顿持续的时间;
所述卡顿场景保存模块用于保存所述设备发生卡顿时的卡顿场景,所述卡顿场景为发生卡顿的帧数据显示画面的截图场景;
所述卡顿处理模块用于根据所述卡顿类型、卡顿时长和卡顿场景,对设备发生的卡顿进行处理。
8.一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-6任一项所述的一种设备卡顿的处理方法。
9.一种存储介质,其特征在于,所述存储介质包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-6任一项所述的一种设备卡顿的处理方法。
CN201911096483.9A 2019-11-11 2019-11-11 一种设备卡顿的处理方法、装置、设备和介质 Active CN110908864B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911096483.9A CN110908864B (zh) 2019-11-11 2019-11-11 一种设备卡顿的处理方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911096483.9A CN110908864B (zh) 2019-11-11 2019-11-11 一种设备卡顿的处理方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN110908864A CN110908864A (zh) 2020-03-24
CN110908864B true CN110908864B (zh) 2024-05-10

Family

ID=69817193

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911096483.9A Active CN110908864B (zh) 2019-11-11 2019-11-11 一种设备卡顿的处理方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN110908864B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111744177B (zh) * 2020-07-28 2021-06-25 腾讯科技(深圳)有限公司 游戏数据处理方法和装置、存储介质和电子设备
CN112073714A (zh) * 2020-09-09 2020-12-11 福建新大陆软件工程有限公司 视频播放质量自动检测方法、装置、设备及可读存储介质
CN113409816B (zh) * 2021-06-15 2024-04-19 腾讯数码(深圳)有限公司 音频卡顿检测方法、装置、计算机设备和存储介质
CN115794268A (zh) * 2021-09-13 2023-03-14 中兴通讯股份有限公司 云桌面运行的方法、服务器、终端

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235054A (ja) * 2004-02-23 2005-09-02 Nec Corp イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム
CN105589783A (zh) * 2014-11-18 2016-05-18 广州市动景计算机科技有限公司 应用程序卡顿问题数据获取方法及装置
CN106776253A (zh) * 2016-12-08 2017-05-31 武汉斗鱼网络科技有限公司 一种界面卡顿监测方法及装置
CN107193515A (zh) * 2017-04-10 2017-09-22 腾讯科技(深圳)有限公司 动画显示流畅度的监控方法、装置及其设备
CN108345524A (zh) * 2017-01-22 2018-07-31 腾讯科技(深圳)有限公司 应用程序监控方法及应用程序监控装置
CN108446199A (zh) * 2017-02-16 2018-08-24 阿里巴巴集团控股有限公司 一种应用卡顿的检测方法及装置
CN109240875A (zh) * 2018-07-12 2019-01-18 北京百度网讯科技有限公司 一种卡顿分析方法及***
CN109840177A (zh) * 2017-11-24 2019-06-04 腾讯科技(深圳)有限公司 一种卡顿的处理方法及相关设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235054A (ja) * 2004-02-23 2005-09-02 Nec Corp イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム
CN105589783A (zh) * 2014-11-18 2016-05-18 广州市动景计算机科技有限公司 应用程序卡顿问题数据获取方法及装置
CN106776253A (zh) * 2016-12-08 2017-05-31 武汉斗鱼网络科技有限公司 一种界面卡顿监测方法及装置
CN108345524A (zh) * 2017-01-22 2018-07-31 腾讯科技(深圳)有限公司 应用程序监控方法及应用程序监控装置
CN108446199A (zh) * 2017-02-16 2018-08-24 阿里巴巴集团控股有限公司 一种应用卡顿的检测方法及装置
CN107193515A (zh) * 2017-04-10 2017-09-22 腾讯科技(深圳)有限公司 动画显示流畅度的监控方法、装置及其设备
CN109840177A (zh) * 2017-11-24 2019-06-04 腾讯科技(深圳)有限公司 一种卡顿的处理方法及相关设备
CN109240875A (zh) * 2018-07-12 2019-01-18 北京百度网讯科技有限公司 一种卡顿分析方法及***

Also Published As

Publication number Publication date
CN110908864A (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
CN110908864B (zh) 一种设备卡顿的处理方法、装置、设备和介质
EP3019971B1 (en) Methods and systems for performance monitoring for mobile applications
CN106681811B (zh) 基于线程池的多线程调度方法及装置
EP2763034B1 (en) Method and device for image-capturing application screen for use in mobile terminal
US20160156653A1 (en) Method and Device for Identifying User Behavior
CN106130753B (zh) 应用性能数据收集***、方法、代理客户端及相关服务器
CN105117110B (zh) 在应用程序的预设界面显示用户设备状态的方法和装置
CN111343424B (zh) 在线评标的监控***及方法
CN111078446A (zh) 一种故障信息获取方法、装置、电子设备及存储介质
CN107273278B (zh) 卡顿确定方法、装置及终端
CN107045475B (zh) 测试方法和装置
US20210173697A1 (en) Method, apparatus and terminal device for acquiring application interface startup time
CN107797922B (zh) 应用页面的测试方法、电子装置及电子设备
CN106919377B (zh) 确定应用程序的展示界面是否是白屏的方法及装置
CN104572086A (zh) 基于安卓设备的fps值获取方法及获取***
US9152872B2 (en) User experience analysis system to analyze events in a computer desktop
CN110825466B (zh) 一种程序卡顿的处理方法以及卡顿处理装置
WO2016188101A1 (zh) 一种针对业务***的测试方法和装置
CN106919489B (zh) 应用程序的应用界面异常退出的监测方法及装置
CN110389872B (zh) 一种数据采集方法、装置以及相关设备
CN109800146B (zh) 应用程序启动时间测试方法、装置、计算机设备及存储介质
CN116860552A (zh) 应用程序运行监测方法、装置、电子设备及存储介质
CN107729207A (zh) 一种应用程序主线程的监控方法及装置
CN112711519A (zh) 画面流畅度检测方法、装置、存储介质和计算机设备
CN113220554B (zh) 检测程序代码的性能的方法和设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant