CN111858313A - 一种界面卡顿检测方法、装置及存储介质 - Google Patents

一种界面卡顿检测方法、装置及存储介质 Download PDF

Info

Publication number
CN111858313A
CN111858313A CN202010593800.4A CN202010593800A CN111858313A CN 111858313 A CN111858313 A CN 111858313A CN 202010593800 A CN202010593800 A CN 202010593800A CN 111858313 A CN111858313 A CN 111858313A
Authority
CN
China
Prior art keywords
program
detected
execution time
detection
dynamic library
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.)
Pending
Application number
CN202010593800.4A
Other languages
English (en)
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.)
Xiamen Yealink Network Technology Co Ltd
Original Assignee
Xiamen Yealink Network Technology 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 Xiamen Yealink Network Technology Co Ltd filed Critical Xiamen Yealink Network Technology Co Ltd
Priority to CN202010593800.4A priority Critical patent/CN111858313A/zh
Publication of CN111858313A publication Critical patent/CN111858313A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

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

Abstract

本发明公开了一种界面卡顿检测方法、装置及存储介质。所述方法包括:驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,并启动检测程序;驱动所述检测程序获取当前时间,并根据所述历史执行时间计算获得时间间隔;当所述时间间隔大于预设阈值时,判定所述待检测程序当前有卡顿事件,并记录所述待检测程序的转储文件。本发明能够在对待检测程序进行卡顿检测时不占用待检测程序的大量内存,避免影响待检测程序的运行性能,从而实现实时检测待检测程序。

Description

一种界面卡顿检测方法、装置及存储介质
技术领域
本发明涉及性能检测技术领域,尤其涉及一种界面卡顿检测方法、装置及存储介质。
背景技术
用户在使用电脑中某一应用程序时,受电脑CPU和内存资源的限制,可能会遇到界面卡顿问题。而引起界面卡顿的原因有很多,为分析界面卡顿的原因,常采用VS自带的性能分析工具对应用程序进行分析测试。VS性能分析工具能够启动被检测的应用程序,准确获取程序中函数的调用次数及调用耗时。但VS性能分析工具所占内存过大,容易影响应用程序的运行性能,导致VS性能分析工具并不能在用户电脑上长时间工作,也就无法多次检测应用程序。可见,利用VS性能分析工具并不能实时检测应用程序,且由于界面卡顿是一个随机性事件,在测试过程中不一定会出现界面卡顿,难以保证能够及时分析界面卡顿的原因。
发明内容
本发明提供一种界面卡顿检测方法、装置及存储介质,能够在对待检测程序进行卡顿检测时不占用待检测程序的大量内存,避免影响待检测程序的运行性能,从而实现实时检测待检测程序。
为了解决上述技术问题,本发明提供一种界面卡顿检测方法,包括:
驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,并启动检测程序;
驱动所述检测程序获取当前时间,并根据所述历史执行时间计算获得时间间隔;
当所述时间间隔大于预设阈值时,判定所述待检测程序当前有卡顿事件,并记录所述待检测程序的转储文件。
进一步地,所述驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,具体为:
驱动所述配合动态库在所述待检测程序主线程中记录所述指定事件的执行时间,并将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
进一步地,所述将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中,包括:
根据预设周期将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
本发明还提供一种界面卡顿检测装置,包括:
配合动态库驱动模块,用于驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,并启动检测程序;
检测程序驱动模块,用于驱动所述检测程序获取当前时间,并根据所述历史执行时间计算获得时间间隔;
卡顿检测模块,用于当所述时间间隔大于预设阈值时,判定所述待检测程序当前有卡顿事件,并记录所述待检测程序的转储文件。
进一步地,所述驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,具体为:
驱动所述配合动态库在所述待检测程序主线程中记录所述指定事件的执行时间,并将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
进一步地,所述将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中,包括:
根据预设周期将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上所述的界面卡顿检测方法。
本发明的实施例,具有如下有益效果:
通过待检测程序加载的配合动态库存储待检测程序主线程中指定事件的历史执行时间,以及启动检测程序,由检测程序获取当前时间,并根据指定事件的历史执行时间计算获得时间间隔,当时间间隔大于预设阈值时,判定待检测程序当前有卡顿事件,同时记录待检测程序的转储文件,使得检测人员可根据待检测程序在卡顿时刻的转储文件分析待检测程序的卡顿原因。相比于现有技术中VS性能分析工具直接检测应用程序,本发明仅需待检测程序加载配合动态库,由配合动态库启动检测程序,使检测程序根据配合动态库中的数据对待检测程序进行卡顿检测,能够在对待检测程序进行卡顿检测时不占用待检测程序的大量内存,避免影响待检测程序的运行性能,从而实现实时检测待检测程序。
附图说明
图1为本发明第一实施例中的一种界面卡顿检测方法的流程示意图;
图2为本发明第二实施例中的一种界面卡顿检测装置的结构示意图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,文中的步骤编号,仅为了方便具体实施例的解释,不作为限定步骤执行先后顺序的作用。本实施例提供的方法可以由相关的服务器执行,且下文均以服务器作为执行主体为例进行说明。
如图1所示,第一实施例提供一种界面卡顿检测方法,包括步骤S1~S3:
S1、驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,并启动检测程序。
S2、驱动所述检测程序获取当前时间,并根据所述历史执行时间计算获得时间间隔。
S3、当所述时间间隔大于预设阈值时,判定所述待检测程序当前有卡顿事件,并记录所述待检测程序的转储文件。
需要说明的是,待检测程序、配合动态库和检测程序均在windows系统上运行。指定事件是由配合动态库指定。
待检测程序加载配合动态库,由配合动态库使用待检测程序的主线程资源执行指定事件以存储指定事件的历史执行时间,并启动检测程序,使检测程序获取当前时间,并根据指定事件的历史执行时间计算获得时间间隔,当时间间隔大于预设阈值,比如大于1秒时,判定待检测程序当前有卡顿事件,并记录待检测程序的转储文件。
可以理解的是,通过待检测程序加载的配合动态库存储待检测程序主线程中指定事件的历史执行时间,以及启动检测程序,由检测程序当前时间,并根据指定事件的历史执行时间计算获得时间间隔,当时间间隔大于预设阈值时,判定待检测程序当前有卡顿事件,同时记录待检测程序的转储文件,使得检测人员可根据待检测程序在卡顿时刻的转储文件分析待检测程序的卡顿原因。
本实施例仅需待检测程序加载配合动态库,由配合动态库启动检测程序,使检测程序根据配合动态库中的数据对待检测程序进行卡顿检测,能够在对待检测程序进行卡顿检测时不占用待检测程序的大量内存,避免影响待检测程序的运行性能,从而实现实时检测待检测程序。
在优选的实施例当中,所述驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,具体为:驱动所述配合动态库在所述待检测程序主线程中记录所述指定事件的执行时间,并将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
可以理解的是,配合动态库使用待检测程序的主线程资源执行指定事件和记录指定事件的执行时间,并将记录的执行时间作为指定事件的历史执行时间存储至与检测程序共享的内存中,使得检测程序可从共享内存中读取指定事件的历史执行时间。
将配合动态库的内存与检测程序共享,使检测程序直接从配合动态库的内存中读取数据,无需额外为检测程序设置内存以通过数据传输存储相同数据,从而提高数据处理的效率。
在优选的实施例当中,所述将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中,包括:根据预设周期将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
在本实施例的一种优选的实施方式中,配合动态库根据预设周期,使用待检测程序的主线程资源执行指定事件和记录指定事件的执行时间,将定时执行指定事件所记录的执行时间作为指定事件的历史执行时间存储至与检测程序共享的内存中。
在本实施例的另一种优选的实施方式中,配合动态库使用待检测程序的主线程资源执行指定事件和记录指定事件的执行时间,根据预设周期提取记录的执行时间,将定时提取的执行时间作为指定事件的历史执行时间存储至与检测程序共享的内存中。
可以理解的是,定时将记录的执行时间作为指定事件的历史执行时间存储至与检测程序共享的内存中,能够适时更新指定事件的历史执行时间,减小时间间隔的计算误差,从而有利于提高卡顿检测的准确性。
如图2所示,第二实施例提供一种界面卡顿检测装置,包括:配合动态库驱动模块21,用于驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,并启动检测程序;检测程序驱动模块22,用于驱动所述检测程序获取当前时间,并根据所述历史执行时间计算获得时间间隔;卡顿检测模块23,用于当所述时间间隔大于预设阈值时,判定所述待检测程序当前有卡顿事件,并记录所述待检测程序的转储文件。
需要说明的是,待检测程序、配合动态库和检测程序均在windows系统上运行。指定事件是由配合动态库指定。
通过配合动态库驱动模块21,在待检测程序加载配合动态库后,由配合动态库使用待检测程序的主线程资源执行指定事件以存储指定事件的历史执行时间,并启动检测程序,进而通过检测程序驱动模块22,使检测程序获取当前时间,并根据指定事件的历史执行时间计算获得时间间隔,最后通过卡顿检测模块23,在当时间间隔大于预设阈值,比如大于1秒时,判定待检测程序当前有卡顿事件,并记录待检测程序的转储文件。
可以理解的是,通过配合动态库驱动模块21,使待检测程序加载的配合动态库存储待检测程序主线程中指定事件的历史执行时间,以及启动检测程序,进而通过检测程序驱动模块22,由检测程序获取当前时间,并根据指定事件的历史执行时间计算获得时间间隔,最后通过卡顿检测模块23,在当时间间隔大于预设阈值时,判定待检测程序当前有卡顿事件,同时记录待检测程序的转储文件,使得检测人员可根据待检测程序在卡顿时刻的转储文件分析待检测程序的卡顿原因。
本实施例仅需待检测程序加载配合动态库,由配合动态库启动检测程序,使检测程序根据配合动态库中的数据对待检测程序进行卡顿检测,能够在对待检测程序进行卡顿检测时不占用待检测程序的大量内存,避免影响待检测程序的运行性能,从而实现实时检测待检测程序。
在优选的实施例当中,所述驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,具体为:驱动所述配合动态库在所述待检测程序主线程中记录所述指定事件的执行时间,并将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
可以理解的是,配合动态库使用待检测程序的主线程资源执行指定事件和记录指定事件的执行时间,并将记录的执行时间作为指定事件的历史执行时间存储至与检测程序共享的内存中,使得检测程序可从共享内存中读取指定事件的历史执行时间。
将配合动态库的内存与检测程序共享,使检测程序直接从配合动态库的内存中读取数据,无需额外为检测程序设置内存以通过数据传输存储相同数据,从而能够提高数据处理的效率。
在优选的实施例当中,所述将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中,包括:根据预设周期将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
在本实施例的一种优选的实施方式中,配合动态库根据预设周期,使用待检测程序的主线程资源执行指定事件和记录指定事件的执行时间,将定时执行指定事件所记录的执行时间作为指定事件的历史执行时间存储至与检测程序共享的内存中。
在本实施例的另一种优选的实施方式中,配合动态库使用待检测程序的主线程资源执行指定事件和记录指定事件的执行时间,根据预设周期提取记录的执行时间,将定时提取的执行时间作为指定事件的历史执行时间存储至与检测程序共享的内存中。
可以理解的是,定时将记录的执行时间作为指定事件的历史执行时间存储至与检测程序共享的内存中,能够适时更新指定事件的历史执行时间,减小时间间隔的计算误差,从而有利于提高卡顿检测的准确性。
第三实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一实施例所述的界面卡顿检测方法,并能达到与之相同的有益效果。
综上所述,本发明的实施例具有如下有益效果:
通过待检测程序加载的配合动态库存储待检测程序主线程中指定事件的历史执行时间,以及启动检测程序,由检测程序获取当前时间,并根据指定事件的历史执行时间计算获得时间间隔,当时间间隔大于预设阈值时,判定待检测程序当前有卡顿事件,同时记录待检测程序的转储文件,使得检测人员可根据待检测程序在卡顿时刻的转储文件分析待检测程序的卡顿原因。本实施例仅需待检测程序加载配合动态库,由配合动态库启动检测程序,使检测程序根据配合动态库中的数据对待检测程序进行卡顿检测,能够在对待检测程序进行卡顿检测时不占用待检测程序的大量内存,避免影响待检测程序的运行性能,从而实现实时检测待检测程序。
本领域普通技术人员可以理解实现上述实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (7)

1.一种界面卡顿检测方法,其特征在于,包括:
驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,并启动检测程序;
驱动所述检测程序获取当前时间,并根据所述历史执行时间计算获得时间间隔;
当所述时间间隔大于预设阈值时,判定所述待检测程序当前有卡顿事件,并记录所述待检测程序的转储文件。
2.如权利要求1所述的界面卡顿检测方法,其特征在于,所述驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,具体为:
驱动所述配合动态库在所述待检测程序主线程中记录所述指定事件的执行时间,并将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
3.如权利要求2所述的界面卡顿检测方法,其特征在于,所述将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中,包括:
根据预设周期将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
4.一种界面卡顿检测装置,其特征在于,包括:
配合动态库驱动模块,用于驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,并启动检测程序;
检测程序驱动模块,用于驱动所述检测程序获取当前时间,并根据所述历史执行时间计算获得时间间隔;
卡顿检测模块,用于当所述时间间隔大于预设阈值时,判定所述待检测程序当前有卡顿事件,并记录所述待检测程序的转储文件。
5.如权利要求4所述的界面卡顿检测装置,其特征在于,所述驱动待检测程序加载的配合动态库存储所述待检测程序主线程中指定事件的历史执行时间,具体为:
驱动所述配合动态库在所述待检测程序主线程中记录所述指定事件的执行时间,并将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
6.如权利要求5所述的界面卡顿检测装置,其特征在于,所述将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中,包括:
根据预设周期将所述执行时间作为所述历史执行时间存储至与所述检测程序共享的内存中。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至3任一项所述的界面卡顿检测方法。
CN202010593800.4A 2020-06-24 2020-06-24 一种界面卡顿检测方法、装置及存储介质 Pending CN111858313A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010593800.4A CN111858313A (zh) 2020-06-24 2020-06-24 一种界面卡顿检测方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010593800.4A CN111858313A (zh) 2020-06-24 2020-06-24 一种界面卡顿检测方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN111858313A true CN111858313A (zh) 2020-10-30

Family

ID=72989070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010593800.4A Pending CN111858313A (zh) 2020-06-24 2020-06-24 一种界面卡顿检测方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN111858313A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114356789A (zh) * 2022-03-21 2022-04-15 大鲲智联(成都)科技有限公司 应用程序检测方法、装置、电子设备和计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016054957A1 (zh) * 2014-10-10 2016-04-14 北京金山安全软件有限公司 应用程序异常的检测方法、装置和移动终端
CN107038107A (zh) * 2017-03-09 2017-08-11 武汉斗鱼网络科技有限公司 一种获取应用卡顿信息的方法及装置
CN109324977A (zh) * 2018-10-31 2019-02-12 北京微播视界科技有限公司 应用程序卡顿的检测方法、装置及电子设备
CN109902011A (zh) * 2019-02-28 2019-06-18 深圳乐信软件技术有限公司 一种软件卡顿监测方法、装置、设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016054957A1 (zh) * 2014-10-10 2016-04-14 北京金山安全软件有限公司 应用程序异常的检测方法、装置和移动终端
CN107038107A (zh) * 2017-03-09 2017-08-11 武汉斗鱼网络科技有限公司 一种获取应用卡顿信息的方法及装置
CN109324977A (zh) * 2018-10-31 2019-02-12 北京微播视界科技有限公司 应用程序卡顿的检测方法、装置及电子设备
CN109902011A (zh) * 2019-02-28 2019-06-18 深圳乐信软件技术有限公司 一种软件卡顿监测方法、装置、设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114356789A (zh) * 2022-03-21 2022-04-15 大鲲智联(成都)科技有限公司 应用程序检测方法、装置、电子设备和计算机可读介质

Similar Documents

Publication Publication Date Title
US8495652B2 (en) IT system behavior measurement and analysis system and method thereof
CN111563014A (zh) 接口服务性能测试方法、装置、设备和存储介质
CN106997316B (zh) 内存异常增长的检测系统及方法
WO2024036948A1 (zh) 一种起升机构非稳态负载下振动监测分析方法、装置、设备及存储介质
CN112749013B (zh) 线程负载的检测方法、装置、电子设备及存储介质
CN110597704B (zh) 应用程序的压力测试方法、装置、服务器和介质
US8490062B2 (en) Automatic identification of execution phases in load tests
CN111858313A (zh) 一种界面卡顿检测方法、装置及存储介质
CN109542341B (zh) 一种读写io监测方法、装置、终端及计算机可读存储介质
CN111538638A (zh) 一种iOS端应用程序性能的监控方法和装置
CN111124774B (zh) 一种服务器开机过程稳定性的测试方法及相关装置
CN109783210B (zh) 多任务处理方法、装置、计算机设备及存储介质
CN110992299B (zh) 一种检测浏览器兼容性的方法及装置
CN111597111A (zh) 一种应用程序启动速度监控方法以及装置
CN110554949A (zh) 一种跨平台的进程数据收集分析工具、方法及使用方法
CN111666200A (zh) 一种pc软件冷启动耗时的测试方法及终端
US8265906B2 (en) Automatic identification of execution phases in load tests
CN114861321A (zh) 交通流仿真的问题场景提取方法、装置、设备及介质
CN114238395A (zh) 一种数据库优化方法、装置、电子设备及存储介质
CN112035322A (zh) Jvm监控方法及装置
CN113608973A (zh) 一种cpu性能测试的管理方法、装置、设备及存储介质
US11353860B2 (en) Data analysis device, system, method, and recording medium storing program
CN111026989A (zh) 页面加载时间的检测方法、装置和电子设备
CN111124820A (zh) 一种实现操作系统及进程资源离线型监视和分析的方法
CN111737158A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20201030