CN109933537B - 一种卡顿检测方法、相关装置、设备及计算机可读介质 - Google Patents
一种卡顿检测方法、相关装置、设备及计算机可读介质 Download PDFInfo
- Publication number
- CN109933537B CN109933537B CN201910259036.4A CN201910259036A CN109933537B CN 109933537 B CN109933537 B CN 109933537B CN 201910259036 A CN201910259036 A CN 201910259036A CN 109933537 B CN109933537 B CN 109933537B
- Authority
- CN
- China
- Prior art keywords
- segment
- display sub
- stuck
- display
- segments
- 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
Landscapes
- User Interface Of Digital Computer (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
本申请实施例公开了一种卡顿检测方法、相关装置、设备及计算机可读介质,其中方法包括:将显示片段划分成N个显示子片段,所述显示片段为设备在第一时间段显示的多帧画面,所述第一时间段为所述设备检测到第一操作的时间至响应所述第一操作的时间;N为大于1的整数;测量每个显示子片段的帧率,将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段;根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果;其中,所述卡顿结果用于表征卡顿严重程度。实施本申请,可以避免现有技术中在测量应用程序卡顿时的额外性能开销,提高检测效率。
Description
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种卡顿检测方法、相关装置、设备及计算机可读介质。
背景技术
随着网络技术的高速发展,安装在智能终端,例如手机、平板电脑、可穿戴设备上的应用程序不管是在功能设计,还是在视觉设计上均呈现多样化的发展趋势,旨在满足用户的基本需求的同时,为用户提高更好的用户体验。应用程序出现卡顿现象(ApplicationNot Responding,ANR),是指执行特定功能时,智能终端的显示页面发生延迟、出现丢帧现象。具体地,应用程序发生卡顿现象是指应用程序在响应用户操作时的执行时间超过智能终端预设的阈值。这里所说智能终端预设的阈值是指智能终端预先设置好的处理单一事件的时间。在大多数情况下,片刻时间过后,应用程序便可自行恢复正常。如果应用程序在片刻时间后继续保持卡顿现象,这将会造成更高级别的警告,导致用户的操作不能成功执行。
现有技术中,针对应用程序的卡顿检测方法的实现流程可以包括:首先,测量每相邻两次显示界面绘制的时间间隔;然后,将每相邻两次显示界面绘制的时间间隔与预设时间间隔(例如,预设时间间隔为16ms,表示标准帧率60帧/秒)进行比较,当上述时间间隔大于预设时间间隔时,确定应用程序出现卡顿现象。可以理解的是,如果帧与帧画面之间的生成时间远远大于16ms,则会出现连续丢帧现象,在这种情况下,应用程序的显示界面出现严重卡顿。如图1中③所示,偶发的丢一两帧并不会带来卡顿感;如②所示,当帧率(FPS,Frames Per Second)低于30帧/秒时,才会产生明显的卡顿感。在实际应用中,上述方法需要测量每一帧画面的生成时间,并基于每一帧画面的生成时间确定每相邻两次显示界面绘制的时间间隔,并需要一一将上述时间间隔与预设时间间隔进行比较,以确定是否出现卡顿,整个实现过程中不仅涉及到复杂的测量、计算以及分析过程,还包括过于频繁的数据记录,容易给应用程序带来额外的性能开销。
发明内容
本申请实施例提供一种卡顿检测方法、相关装置、设备及计算机可读介质,可以避免现有技术中在测量应用程序卡顿时的额外性能开销,提高检测效率。
第一方面,本申请实施例提供了一种卡顿检测方法,该方法包括:
将显示片段划分成N个显示子片段,所述显示片段为设备在第一时间段显示的多帧画面,所述第一时间段为所述设备检测到第一操作的时间至响应所述第一操作的时间;N为大于1的整数;
测量每个显示子片段的帧率,将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段;
根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果;其中,所述卡顿结果用于表征卡顿严重程度。
实施本申请实施例,通过对设备屏幕上显示的显示片段进行分片之后,测量N个显示子片段中的每个显示子片段的帧率,并将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段,继而,根据出现卡顿的显示子片段计算卡顿结果,在整个实现过程中,由于是在小粒度时间范围内确定卡顿结果,而不是根据每两帧画面的绘制时间来确定是否出现卡顿,可以避免现有技术中在测量应用程序卡顿时的额外性能开销,提高检测效率。
在其中一个可能的实现方式中,所述测量每个显示子片段的帧率,包括:
获取所述每个显示子片段的渲染次数;
根据所述每个显示子片段的渲染次数以及所述每个显示子片段的时长确定所述帧率。
在其中一个可能的实现方式中,所述根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果,包括:
根据所述N个显示子片段中出现卡顿的显示子片段,计算总卡顿时长;
根据所述显示片段的时长以及所述总卡顿时长确定卡顿结果。
在其中一个可能的实现方式中,所述根据所述显示片段的时长以及所述总卡顿时长确定卡顿结果,包括:
在确定所述卡顿结果时,根据以下公式进行计算:
其中,b表示卡顿结果,Tb表示总卡顿时长,Tt表示所述显示片段的时长。
在其中一个可能的实现方式中,所述根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果,还包括:
根据所述N个显示子片段中出现卡顿的显示子片段,计算出现卡顿的显示子片段的总个数M;其中,M为小于等于N的正整数;
根据所述N个显示子片段以及所述出现卡顿的显示子片段的总个数M确定所述卡顿结果。
在其中一个可能的实现方式中,所述N个显示子片段中的任意一个显示子片段的时长不大于250ms。
在其中一个可能的实现方式中,所述显示片段为所述设备运行第一应用时,在所述第一时间段内显示的多帧画面;所述将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段之前,所述方法还包括:
根据所述设备上预置的应用和阈值的对应关系,确定所述第一应用对应的预设阈值。
第二方面,本申请实施例提供了一种卡顿检测装置,该装置包括用于执行上述第一方面的方法的单元。具体地,该装置可以包括:
划分单元,用于将显示片段划分成N个显示子片段,所述显示片段为设备在第一时间段显示的多帧画面,所述第一时间段为所述设备检测到第一操作的时间至响应所述第一操作的时间;N为大于1的整数;
测量单元,用于测量每个显示子片段的帧率;
确定单元,用于将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段;
计算单元,用于根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果;其中,所述卡顿结果用于表征卡顿严重程度。
在其中一个可能的实现方式中,所述测量单元包括:
获取单元,用于获取所述每个显示子片段的渲染次数;
第一确定单元,用于根据所述每个显示子片段的渲染次数以及所述每个显示子片段的时长确定所述帧率。
在其中一个可能的实现方式中,所述计算单元包括:
第一计算单元,用于根据所述N个显示子片段中出现卡顿的显示子片段,计算总卡顿时长;
第二确定单元,用于根据所述显示片段的时长以及所述总卡顿时长确定卡顿结果;
在其中一个可能的实现方式中,所述第二确定单元具体用于:
在确定所述卡顿结果时,根据以下公式进行计算:
其中,b表示卡顿结果,Tb表示总卡顿时长,Tt表示所述显示片段的时长。
在其中一个可能的实现方式中,所述计算单元还包括:
第二计算单元,用于根据所述N个显示子片段中出现卡顿的显示子片段,计算出现卡顿的显示子片段的总个数M;其中,M为小于等于N的正整数;
第三确定单元,用于根据所述N个显示子片段以及所述出现卡顿的显示子片段的总个数M确定所述卡顿结果。
在其中一个可能的实现方式中,所述N个显示子片段中的任意一个显示子片段的时长不大于250ms。
在其中一个可能的实现方式中,所述显示片段为所述设备运行第一应用时,在所述第一时间段内显示的多帧画面;在所述确定单元将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段之前,所述装置还包括:
第四确定单元,用于根据所述设备上预置的应用和阈值的对应关系,确定所述第一应用对应的预设阈值。
第三方面,本申请实施例提供了一种卡顿检测设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储支持所述设备执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
第五方面,本申请实施例还提供了一种计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
实施本申请实施例,通过对设备屏幕上显示的显示片段进行分片之后,测量N个显示子片段中的每个显示子片段的帧率,并将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段,继而,根据出现卡顿的显示子片段计算卡顿结果,例如,可以根据显示片段的时长和出现卡顿的显示子片段的总卡顿时长计算卡段结果;又例如,还可以根据出现卡顿的显示子片段的总个数与N个显示子片段的比值确定卡顿结果,在整个实现过程中,由于是在小粒度时间范围内确定卡顿结果,而不是根据每两帧画面的绘制时间来确定是否出现卡顿,可以避免现有技术中在测量应用程序卡顿时的额外性能开销,提高检测效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种卡顿检测的示意图;
图2是本申请实施例提供的一种病毒查杀应用程序的第一界面跳转到第二界面的操作示意图;
图3是本申请实施例提供的一种卡顿检测方法的流程示意图;
图4是本申请实施例提供的一种显示片段的划分示意图;
图5是本申请实施例提供的一种显示子片段中包含的画面帧数的示意图;
图6是本申请实施例提供的一种卡顿检测装置的结构示意图;
图7是本申请实施例提供的一种卡顿检测设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
具体实现中,本发明实施例中描述的设备可以为终端或服务器等。具体地,设备可以包括但不限于诸如台式计算机、膝上型计算机、平板计算机、智能终端等。
为了便于更好的理解本申请实施例提供的一种卡顿检测方法、相关装置及设备,下面先对本申请实施例可以应用的应用场景进行阐述,如图2所示,设备(例如,智能终端)上运行有病毒查杀应用程序,智能终端的显示屏显示的是病毒查杀应用程序的第一界面10,该第一界面上显示有垃圾清理按钮101,具体地,该垃圾清理按钮101的功能是扫描智能终端上的占用内存的无用垃圾,当垃圾扫描完成之后,跳转到第二界面20。例如,如第二界面20所示,该界面中包括立即清理按钮102,该按钮的功能是实现垃圾的清理。正常情况下,当用户针对垃圾清理按钮101执行了一次触控操作(这里,触控操作包括但不限于点击、按压等)之后,在1秒之内(具体地,这里所涉及的1秒是指智能终端设置好的第一界面跳转到第二界面的跳转时间)病毒查杀应用程序由第一显示界面10跳转到第二显示界面20。然而,在实际应用中,通常会出现病毒查杀应用程序的第一界面10跳转到第二界面时,跳转时间大于1秒,在这种情况下,可以确定出现卡顿现象。具体来说,这里所涉及的卡顿现象是指应用程序在响应用户操作时的执行时间超过智能终端预设的阈值。结合本申请所描述的卡顿检测方法可以检测第一界面跳转到第二界面过程中的卡顿严重程度,该方法具有轻量化的特点。
基于上述应用场景,下面结合图3所示的本申请实施例提供的一种卡顿检测方法的流程示意图,具体说明在本申请实施例中是如何实现上述应用场景中的卡顿现象的检测的,可以包括但不限于如下步骤:
步骤S301、将显示片段划分成N个显示子片段,所述显示片段为设备在第一时间段显示的多帧画面,所述第一时间段为所述设备检测到第一操作的时间至响应所述第一操作的时间;N为大于1的整数。
结合图2所示的应用场景图,这里,显示片段为在第一时间段内病毒查杀应用程序由第一界面10跳转到第二界面的过程中的多帧画面。具体地,第一时间段为设备检测到用户针对清理垃圾钮101执行触控操作的时间到设备显示第二界面的时间。
在其中一个可能的实现方式中,将显示片段划分成N个显示子片段的示意图可以如图4所示,这里,当在第一时间段内对显示片段进行划分时,N个显示子片段中的每个子片段的时间长度为T。
在实际应用中,在该时间长度T内所包含的画面帧数可以为Q帧画面,也可以为Q+1帧画面,还可以为Q+2帧画面,本申请实施例不作具体限定。例如,显示片段的长度为4Q帧画面,设备将显示片段分成了4个显示子片段,其中,显示子片段1的长度为Q帧画面,显示子片段2的长度为Q帧画面,显示子片段3的长度为Q帧画面,显示子片段4的长度为Q帧画面。又例如,显示片段的长度为4Q+1帧画面,设备将显示片段分成了4个显示子片段,其中,显示子片段1的长度为Q帧画面,显示子片段2的长度为Q帧画面,显示子片段3的长度为Q帧画面,显示子片段4的长度为Q+1帧画面。又例如,显示片段的长度为4Q+2帧画面,设备将显示片段分成了4个显示子片段,其中,显示子片段1的长度为Q帧画面,显示子片段2的长度为Q帧画面,显示子片段3的长度为Q帧画面,显示子片段4的长度为Q+2帧画面。
在其中一个可能的实现方式中,当在第一时间段内对显示片段进行划分时,N个显示子片段中的每个子片段的时间长度可以分布为:T、T、......、T+S。这里,S不大于某一设定的阈值,例如,该阈值为20毫秒。例如,设备将显示片段划分成3个显示子片段,这3个显示子片段中的每个子片段的时间长度可以分布为:T、T、T+S。
具体实现中,所述N个显示子片段中的任意一个显示子片段的时长不大于250ms。例如,显示子片段的时长可以为250ms,又例如,显示子片段的时长可以为200ms,又例如,显示子片段的时长可以为180ms等等,本申请实施例不作具体限定。
例如,显示片段划分成了6个显示子片段,在第一时间内设备渲染6个显示子片段的具体情况可以如图5所示,其中,显示子片段1中包含8帧画面(第1帧画面-第8帧画面),其对应的时长为160ms;显示片段2中包含6帧画面,其对应的时长为160ms,......,显示子片段6中包含5帧画面,其对应的时长为180ms。可以理解的是,显示子片段中的每帧画面关联有各自对应的绘制该帧画面的时间戳。
需要说明的是,这里所描述的每个显示子片段中包含的画面的帧数为实际绘制的帧数,用实线表示;此外,虚线表示理想状态下应该绘制的帧数,然而,由于出现了卡顿现象,在实际情况下,并没有绘制理想状态下应该绘制的画面帧数,而是出现了丢帧。例如,显示子片段2中的丢帧数量为2帧。
步骤S302、测量每个显示子片段的帧率,将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段。
具体实现中,测量每个显示子片段的帧率,可以包括:
获取所述每个显示子片段的渲染次数;
根据所述每个显示子片段的渲染次数以及所述每个显示子片段的时长确定所述帧率。
具体地,当设备接收到图像渲染层针对应用程序界面的绘制渲染通知后,设备执行渲染操作。具体来说,设备执行渲染操作是指设备在显示屏上绘制应用程序界面,那么,在测量每个显示子片段的帧率时,可以先获取每个显示子片段的渲染次数,然后,根据每个显示子片段的渲染次数以及每个显示子片段的时长确定帧率。
例如,可以根据以下公式确定每个显示子片段的帧率:
其中,FPS(FPS,Frames Per Second),也即帧率;P表示每个显示子片段的渲染次数;t表示每个显示子片段的时长,其时间单位为纳秒。以标准帧率60帧/秒为例,其表示在1秒之内显示60帧画面。
可以理解的是,在本申请实施例中,帧率是指每个显示子片段的平均帧率,而不是每相邻两帧画面的帧率。如图1中③所示,在现有的实现方案中,可以确定第22帧画面到第23帧画面之间,出现轻微卡顿。进一步需要说明的是,第22帧画面到第23帧画面之间的卡顿现象微乎其微,为偶发性卡顿现象,并不能表征应用程序的程序源码中的函数调用关系出现问题。那么,在分析应用程序的程序源码的函数调用关系时,对于应用程序研发人员来说,可以忽略该卡顿现象。此外,站在用户的角度上来看,由于其属于偶发性卡顿现象,用户感知不到该卡顿现象。本申请实施例中,采用平均帧率可以避免上述问题,与此同时,该实现方式可以更加符合卡顿的实际感知。
例如,根据上述公式确定图5所示的显示子片段1的帧率为50帧/秒,根据上述公式确定图5所示的显示子片段2的帧率为37.5帧/秒,......,根据上述公式确定图5所示的显示子片段6的帧率为27.8帧/秒。
设备在确定了每个显示子片段的帧率之后,将每个显示子片段的帧率与预设阈值进行比较,以确定是否出现卡顿。
在本申请实施例中,不同的应用场景对应不同的帧率的设定值。
在其中一个可能的实现方式中,这里所说的预设阈值为在该应用场景下会感知出现卡顿现象的最低帧率阈值。进一步地,预设阈值可以从后台配置动态获取。
在其中一个可能的实现方式中,设备上预先存储了应用与阈值之间的对应关系,继而,设备在确定当前应用场景下的预设阈值时,设备可以根据所述设备上预置的应用和阈值的对应关系,确定所述第一应用对应的预设阈值。
例如,应用与阈值之间的对应关系可以包括但不限于表1所示:
表1应用与阈值的对应关系表
应用程序类型 | 阈值 |
即时通信应用程序 | 40帧/秒 |
音频类应用程序 | 50帧/秒 |
游戏类应用程序 | 60帧/秒 |
病毒查杀类应用程序 | 35帧/秒 |
以病毒查杀应用程序为例,设备在获取病毒查杀应用程序的帧率的预设阈值时,设备根据预置的上述对应关系表1确定病毒查杀应用程序的帧率的预设阈值为35帧/秒,继而,执行上述测量帧率与预设阈值的比较操作,以确定是否出现卡顿现象。
如前所述,设备确定显示子片段1的帧率为50帧/秒,显示子片段2的帧率为37.5帧/秒,显示子片段3的帧率为45帧/秒,显示子片段4的帧率为32帧/秒,显示子片段5的帧率为30帧/秒,显示子片段6的帧率为27.8帧/秒。继而,设备将小于预设阈值的显示子片段(例如,显示子片段4、显示子片段5、显示子片段6)确定为出现卡顿的显示子片段。
步骤S304、根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果;其中,所述卡顿结果用于表征卡顿严重程度。
在其中一个可能的实现方式中,所述根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果,包括:
根据所述N个显示子片段中出现卡顿的显示子片段,计算总卡顿时长;
根据所述显示片段的时长以及所述总卡顿时长确定卡顿结果。
具体实现中,所述根据所述显示片段的时长以及所述总卡顿时长确定卡顿结果,包括:
在确定所述卡顿结果时,根据以下公式进行计算:
其中,b表示卡顿结果,Tb表示总卡顿时长,Tt表示所述显示片段的时长。
在其中一个可能的实现方式中,这里,卡顿结果可以包括卡顿系数。在本申请实施例中,卡顿系数可以用百分数表示。
如前所述,设备确定显示子片段4、显示子片段5、显示子片段6为出现卡顿的显示子片段,其中,显示子片段4的时长为160ms,显示子片段5的时长为160ms,显示子片段6的时长为180ms,设备根据上述公式计算得到的卡顿系数为:
这里,卡顿系数越高,表示卡顿程度越严重。在实际应用中,应用程序研发人员在获取到测试应用程序的卡顿系数之后,可以通过分析应用程序的程序源码中的函数调用关系来从根本上解决卡顿问题。当卡顿系数大于某一阈值(例如,80%)时,设备可以发出警告。在这种情况下,该警告用于提示应用程序研发人员有必要对该应用程序进行分析、优化。
在实际应用中,设备可以对出现卡顿现象的显示子片段进行标记。从而,设备可以输出标记了的显示子片段,以便应用程序研发人员可以及时获知应用程序的运行情况,从而有针对性的确定在当前阶段是否需要对应用程序的程序源码作进一步的分析、优化等操作。
在其中一个可能的实现方式中,所述根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果,还包括:
根据所述N个显示子片段中出现卡顿的显示子片段,计算出现卡顿的显示子片段的总个数M;其中,M为小于等于N的正整数;
根据所述N个显示子片段以及所述出现卡顿的显示子片段的总个数M确定所述卡顿结果。
具体实现中,根据所述N个显示子片段以及所述出现卡顿的显示子片段的总个数M确定所述卡顿结果,包括:
在确定所述卡顿结果时,根据以下比值公式进行计算:
其中,b表示卡顿结果,M表示出现卡顿的显示子片段的总个数,N表示所述显示子片段的总个数。
在本申请实施例中,卡顿系数还可以用比值表示。具体地,该比值用于表征出现卡顿的显示子片段数量占所有显示子片段数量的比值。
如前所述,设备确定显示子片段4、显示子片段5、显示子片段6为出现卡顿的显示子片段,也即设备确定在6个显示子片段中出现卡顿现象的显示子片段的总个数M为3,之后,设备根据上述比值公式计算得到的卡顿系数为:
可以理解的是,比值越大,表示卡顿程度越严重。类似地,当卡顿系数大于某一阈值(例如,80%)时,设备可以发出警告。
在本申请实施例中,由于卡顿系数是在小粒度时间范围内确定的,只需累计帧数、确定出现卡顿的显示子片段,而无需获取每帧画面生成的时间数据,也无需频繁计算数据,具有轻量化的特点。此外,站在用户体验角度来看,采用卡顿系数评价应用程序的卡顿情况时,可以更加符合卡顿的实际感知。
实施本申请实施例,通过对设备屏幕上显示的显示片段进行分片之后,测量N个显示子片段中的每个显示子片段的帧率,并将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段,继而,根据出现卡顿的显示子片段计算卡顿结果,例如,可以根据显示片段的时长和出现卡顿的显示子片段的总卡顿时长计算卡段结果;又例如,还可以根据出现卡顿的显示子片段的总个数与N个显示子片段的比值确定卡顿结果,在整个实现过程中,由于是在小粒度时间范围内确定卡顿结果,而不是根据每两帧画面的绘制时间来确定是否出现卡顿,可以避免现有技术中在测量应用程序卡顿时的额外性能开销,提高检测效率。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面还提供用于配合实施上述方案的相关装置。
参见图6,图6为本申请实施例提供发一种卡顿检测装置的结构示意图,该装置60至少可以包括:划分单元600、测量单元602、确定单元604以及计算单元606;其中,
划分单元600,用于将显示片段划分成N个显示子片段,所述显示片段为设备在第一时间段显示的多帧画面,所述第一时间段为所述设备检测到第一操作的时间至响应所述第一操作的时间;N为大于1的整数;
测量单元602,用于测量每个显示子片段的帧率;
确定单元604,用于将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段;
计算单元606,用于根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果;其中,所述卡顿结果用于表征卡顿严重程度。
在其中一个可能的实现方式中,所述测量单元602可以包括:
获取单元6021,用于获取所述每个显示子片段的渲染次数;
第一确定单元6022,用于根据所述每个显示子片段的渲染次数以及所述每个显示子片段的时长确定所述帧率。
在其中一个可能的实现方式中,所述计算单元606包括:
第一计算单元6061,用于根据所述N个显示子片段中出现卡顿的显示子片段,计算总卡顿时长;
第二确定单元6062,用于根据所述显示片段的时长以及所述总卡顿时长确定卡顿结果;
在其中一个可能的实现方式中,所述第二确定单元6062具体用于:
在确定所述卡顿结果时,根据以下公式进行计算:
其中,b表示卡顿结果,Tb表示总卡顿时长,Tt表示所述显示片段的时长。
在其中一个可能的实现方式中,所述计算单元606还包括:
第二计算单元6063,用于根据所述N个显示子片段中出现卡顿的显示子片段,计算出现卡顿的显示子片段的总个数M;其中,M为小于等于N的正整数;
第三确定单元6064,用于根据所述N个显示子片段以及所述出现卡顿的显示子片段的总个数M确定所述卡顿结果。
在其中一个可能的实现方式中,所述N个显示子片段中的任意一个显示子片段的时长不大于250ms。
在其中一个可能的实现方式中,所述显示片段为所述设备运行第一应用时,在所述第一时间段内显示的多帧画面;在所述确定单元604将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段之前,所述装置还包括:
第四确定单元608,用于根据所述设备上预置的应用和阈值的对应关系,确定所述第一应用对应的预设阈值。
实施本申请实施例,通过对设备屏幕上显示的显示片段进行分片之后,测量N个显示子片段中的每个显示子片段的帧率,并将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段,继而,根据出现卡顿的显示子片段计算卡顿结果,例如,可以根据显示片段的时长和出现卡顿的显示子片段的总卡顿时长计算卡段结果;又例如,还可以根据出现卡顿的显示子片段的总个数与N个显示子片段的比值确定卡顿结果,在整个实现过程中,由于是在小粒度时间范围内确定卡顿结果,而不是根据每两帧画面的绘制时间来确定是否出现卡顿,可以避免现有技术中在测量应用程序卡顿时的额外性能开销,提高检测效率。
为了便于更好地实施本发明实施例的上述方案,本发明还对应提供了一种卡顿检测设备,下面结合附图来进行详细说明:
如图7示出的本发明实施例提供的卡顿设备的结构示意图,设备70可以包括处理器701、存储器704和通信模块705,处理器701、存储器704和通信模块705可以通过总线706相互连接。存储器704可以是高速随机存储记忆体(Random Access Memory,RAM)存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器704可选的还可以是至少一个位于远离前述处理器701的存储***。存储器704用于存储应用程序代码,可以包括操作***、网络通信模块、用户接口模块以及卡顿检测程序,通信模块705用于与外部设备进行信息交互;处理器701被配置用于调用该程序代码,执行以下步骤:
将显示片段划分成N个显示子片段,所述显示片段为设备在第一时间段显示的多帧画面,所述第一时间段为所述设备检测到第一操作的时间至响应所述第一操作的时间;N为大于1的整数;
测量每个显示子片段的帧率,将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段;
根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果;其中,所述卡顿结果用于表征卡顿严重程度。
其中,处理器701测量每个显示子片段的帧率,可以包括:
获取所述每个显示子片段的渲染次数;
根据所述每个显示子片段的渲染次数以及所述每个显示子片段的时长确定所述帧率。
其中,所述处理器701根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果,可以包括:
根据所述N个显示子片段中出现卡顿的显示子片段,计算总卡顿时长;
根据所述显示片段的时长以及所述总卡顿时长确定卡顿结果。
其中,所述处理器701根据所述显示片段的时长以及所述总卡顿时长确定卡顿结果,可以包括:
在确定所述卡顿结果时,根据以下公式进行计算:
其中,b表示卡顿结果,Tb表示总卡顿时长,Tt表示所述显示片段的时长。
其中,所述处理器701根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果,还可以包括:
根据所述N个显示子片段中出现卡顿的显示子片段,计算出现卡顿的显示子片段的总个数M;其中,M为小于等于N的正整数;
根据所述N个显示子片段以及所述出现卡顿的显示子片段的总个数M确定所述卡顿结果。
其中,所述N个显示子片段中的任意一个显示子片段的时长不大于250ms。
其中,所述显示片段为所述设备运行第一应用时,在所述第一时间段内显示的多帧画面;所述处理器701将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段之前,所述处理器701还可以用于:
根据所述设备上预置的应用和阈值的对应关系,确定所述第一应用对应的预设阈值。
需要说明的是,本发明实施例中的设备70中处理器的执行步骤可参考上述各方法实施例中图3实施例中的设备运行的具体实现方式,这里不再赘述。
在具体实现中,卡顿设备70可以包括移动手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动互联网设备(Mobile Internet Device,MID)等各种用户可以使用的设备,本发明实施例不作具体限定。
应理解,本申请实施例提供的方法可以适用的应用场景只是作为一种示例,实际应用中并不限于此。
还应理解,本申请中涉及的第一、第二、第三以及各种数字编号仅仅为描述方便进行的区分,并不用来限制本申请的范围。
应理解,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。
此外,在本申请的各个实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚的了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块和单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是物理上分开的,也可以不是物理上分开的,作为单元显示的部件可以是物理单元,也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
此外,在本申请各个实施例中所涉及的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现,本申请对此不作限定。
本发明实施例还提供了一种计算机存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个实施例所述方法中的一个或多个步骤。上述装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中,基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机产品存储在计算机可读存储介质中。
上述计算机可读存储介质可以是前述实施例所述的设备的内部存储单元,例如硬盘或内存。上述计算机可读存储介质也可以是上述设备的外部存储设备,例如配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述计算机可读存储介质还可以既包括上述设备的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述设备所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可通过计算机程序来指令相关的硬件来完成,该计算机的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可存储程序代码的介质。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种卡顿检测方法,其特征在于,包括:
将显示片段划分成N个显示子片段,所述显示片段为设备在第一时间段内由第一界面跳转到第二界面的过程中所显示的多帧画面,所述第一时间段为所述设备检测到第一操作的时间至响应所述第一操作显示所述第二界面的时间;N为大于1的整数;每一个显示子片段所包括的帧画面在所述显示片段中连续;
测量每个显示子片段的帧率,将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段;
根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果;其中,所述卡顿结果用于表征卡顿严重程度。
2.根据权利要求1所述的方法,其特征在于,所述测量每个显示子片段的帧率,包括:
获取所述每个显示子片段的渲染次数;
根据所述每个显示子片段的渲染次数以及所述每个显示子片段的时长确定所述帧率。
3.根据权利要求1所述的方法,其特征在于,所述根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果,包括:
根据所述N个显示子片段中出现卡顿的显示子片段,计算总卡顿时长;
根据所述显示片段的时长以及所述总卡顿时长确定卡顿结果。
5.根据权利要求3所述的方法,其特征在于,所述根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果,还包括:
根据所述N个显示子片段中出现卡顿的显示子片段,计算出现卡顿的显示子片段的总个数M;其中,M为小于等于N的正整数;
根据所述N个显示子片段以及所述出现卡顿的显示子片段的总个数M确定所述卡顿结果。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述N个显示子片段中的任意一个显示子片段的时长不大于250ms。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述显示片段为所述设备运行第一应用时,在所述第一时间段内显示的多帧画面;所述将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段之前,所述方法还包括:
根据所述设备上预置的应用和阈值的对应关系,确定所述第一应用对应的预设阈值。
8.一种卡顿检测装置,其特征在于,包括:
划分单元,用于将显示片段划分成N个显示子片段,所述显示片段为设备在第一时间段内由第一界面跳转到第二界面的过程中所显示的多帧画面,所述第一时间段为所述设备检测到第一操作的时间至响应所述第一操作显示所述第二界面的时间;N为大于1的整数;每一个显示子片段所包括的帧画面在所述显示片段中连续;
测量单元,用于测量每个显示子片段的帧率;
确定单元,用于将测量帧率小于预设阈值的显示子片段确定为出现卡顿的显示子片段;
计算单元,用于根据所述N个显示子片段中出现卡顿的显示子片段,计算卡顿结果;其中,所述卡顿结果用于表征卡顿严重程度。
9.一种卡顿检测设备,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910259036.4A CN109933537B (zh) | 2019-03-29 | 2019-03-29 | 一种卡顿检测方法、相关装置、设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910259036.4A CN109933537B (zh) | 2019-03-29 | 2019-03-29 | 一种卡顿检测方法、相关装置、设备及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109933537A CN109933537A (zh) | 2019-06-25 |
CN109933537B true CN109933537B (zh) | 2021-07-27 |
Family
ID=66988891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910259036.4A Active CN109933537B (zh) | 2019-03-29 | 2019-03-29 | 一种卡顿检测方法、相关装置、设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109933537B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991034A (zh) * | 2017-04-01 | 2017-07-28 | 奇酷互联网络科技(深圳)有限公司 | 一种监控卡顿的方法和设备以及移动终端 |
CN107678934A (zh) * | 2017-10-13 | 2018-02-09 | 北京小米移动软件有限公司 | 卡顿指标获取方法及装置 |
CN108076386A (zh) * | 2017-12-22 | 2018-05-25 | 广州酷狗计算机科技有限公司 | 视频卡顿检测方法及装置、存储介质 |
CN108721898A (zh) * | 2018-06-01 | 2018-11-02 | 深圳市腾讯网络信息技术有限公司 | 帧率的确定方法和装置、存储介质、电子装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8712945B2 (en) * | 2012-01-31 | 2014-04-29 | International Business Machines Corporation | System and method for optimizing teams |
-
2019
- 2019-03-29 CN CN201910259036.4A patent/CN109933537B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991034A (zh) * | 2017-04-01 | 2017-07-28 | 奇酷互联网络科技(深圳)有限公司 | 一种监控卡顿的方法和设备以及移动终端 |
CN107678934A (zh) * | 2017-10-13 | 2018-02-09 | 北京小米移动软件有限公司 | 卡顿指标获取方法及装置 |
CN108076386A (zh) * | 2017-12-22 | 2018-05-25 | 广州酷狗计算机科技有限公司 | 视频卡顿检测方法及装置、存储介质 |
CN108721898A (zh) * | 2018-06-01 | 2018-11-02 | 深圳市腾讯网络信息技术有限公司 | 帧率的确定方法和装置、存储介质、电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109933537A (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107193515B (zh) | 动画显示流畅度的监控方法、装置及其设备 | |
US9860139B2 (en) | Passive monitoring of live virtual desktop infrastructure (VDI) deployments | |
CN110300327B (zh) | 一种游戏客户端性能分析方法、装置、终端及存储介质 | |
CN107450900B (zh) | 一种截图方法及装置 | |
CN109388317B (zh) | 一种图片加载方法、终端设备及存储介质 | |
US20130036235A1 (en) | Method of transmission of visual content | |
EP3408752B1 (en) | Object management and visualization using a computing device | |
CN112135140A (zh) | 视频清晰度识别方法、电子设备及存储介质 | |
CN114996103A (zh) | 页面异常检测方法、装置、电子设备和存储介质 | |
CN110781427A (zh) | 一种首屏时间的计算方法、装置、设备和存储介质 | |
CN113905249B (zh) | 推流异常检测方法及装置 | |
CN115955557A (zh) | 卡顿分析方法及其装置 | |
CN111818393A (zh) | 一种视频进度调整方法、调整装置及电子设备 | |
CN109873980B (zh) | 视频监控方法、装置及终端设备 | |
US10152214B2 (en) | Method and mobile terminal for displaying visual prompt | |
CN106445698B (zh) | 计步数据的获取方法及装置 | |
CN113780163A (zh) | 一种页面加载时间的检测方法、装置、电子设备及介质 | |
US11800975B2 (en) | Eye fatigue prediction based on calculated blood vessel density score | |
CN109933537B (zh) | 一种卡顿检测方法、相关装置、设备及计算机可读介质 | |
CN107038053B (zh) | 一种加载网页图片的统计方法、装置及移动终端 | |
CN107862010B (zh) | 一种获取物联网应用***信息的方法、装置及移动终端 | |
CN106708605B (zh) | 一种检测资源泄漏的方法及装置 | |
CN115934179A (zh) | 业务功能控制方法及设备 | |
CN112527539B (zh) | 一种界面检测的方法以及相关装置 | |
CN110989895B (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 |