CN114637651A - 内存帧率检测方法、装置、计算机设备及存储介质 - Google Patents
内存帧率检测方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114637651A CN114637651A CN202210253906.9A CN202210253906A CN114637651A CN 114637651 A CN114637651 A CN 114637651A CN 202210253906 A CN202210253906 A CN 202210253906A CN 114637651 A CN114637651 A CN 114637651A
- Authority
- CN
- China
- Prior art keywords
- memory
- target terminal
- frame rate
- value
- equal
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
- G06F11/3423—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Telephone Function (AREA)
Abstract
本申请实施例属于通信技术领域,涉及一种内存帧率检测方法,包括在目标终端中创建子线程,基于子线程对目标终端应用的内存值进行循环获取;确定当前应用的内存值的获取时长是否大于等于预设时间阈值,在获取时长大于等于预设时间阈值时,延迟获取当前应用的内存值;检测目标终端的垂直同步信号,获取垂直同步信号的同步时间差,根据同步时间差计算目标终端的当前帧率;根据内存值确定目标终端的总内存,推送总内存和当前帧率至目标终端的显示界面。本申请还提供一种内存帧率检测装置、计算机设备及存储介质。此外,本申请还涉及区块链技术,内存值可存储于区块链中。本申请实现了对目标终端内存和帧率的实时获取。
Description
技术领域
本申请涉及通信技术领域,尤其涉及内存帧率检测方法、装置、计算机设备及存储介质。
背景技术
当前,对于手机终端,并不能直接查看到内部应用的内存占用情况和丢帧信息。在对终端内存进行查看时,往往需要从终端系统的设置中进行查看,并且在切换至后台时,有的系统则会主动关闭或释放一些内存,因此,往往难以及时并准确地获取到当前终端的内存信息。对于终端帧率的监测,当前则主要通过Trace-canary框架实现,该框架只能对终端的帧率进行监测而无法同时对内存进行监测。因此,如何在对终端内存进行精确检测的同时对帧率进行获取是亟需解决的问题。
发明内容
本申请实施例的目的在于提出一种内存帧率检测方法、装置、计算机设备及存储介质,以解决当前无法对终端的内存和帧率进行同时监测的技术问题。
为了解决上述技术问题,本申请实施例提供一种内存帧率检测方法,采用了如下所述的技术方案:
在目标终端中创建子线程,基于所述子线程对所述目标终端应用的内存值进行循环获取;
确定当前应用的内存值的获取时长是否大于等于预设时间阈值,在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值;
检测所述目标终端的垂直同步信号,获取所述垂直同步信号的同步时间差,根据所述同步时间差计算所述目标终端的当前帧率;
根据所述内存值确定所述目标终端的总内存,推送所述总内存和所述当前帧率至所述目标终端的显示界面。
进一步的,所述在目标终端中创建子线程,基于所述子线程对所述目标终端应用的内存值进行循环获取的步骤包括:
在所述目标终端中创建目标对象,基于所述目标对象开启所述子线程;
创建计时器,根据所述计时器在所述子线程中循环读取所述目标终端应用的内存值。
进一步的,所述在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值的步骤包括:
在所述获取时长大于等于所述预设时间阈值时,获取延迟初值;
根据所述延迟初值的预设等比值计算延迟时长,基于所述延迟时长对所述当前应用的内存值进行延迟获取。
进一步的,所述根据所述同步时间差计算所述目标终端的当前帧率的步骤包括:
获取所述垂直同步信号的标准中断周期和所述目标终端的标准帧率;
计算所述标准中断周期和所述同步时间差的差值,根据所述差值和所述标准帧率计算得到所述目标终端的当前帧率。
进一步的,在所述推送所述总内存和所述当前帧率至所述目标终端的显示界面的步骤之后,还包括:
存储所述总内存和所述当前帧率至所述目标终端的存储卡中,在接收到所述目标终端的异常检测指令时,调用所述存储卡的存储记录和所述目标终端的应用日志;
基于所述存储记录和所述应用日志,确定所述目标终端是否存在异常。
进一步的,所述基于所述存储记录和所述应用日志,确定所述目标终端是否存在异常的步骤包括:
基于所述存储记录和所述应用日志,查找内存变化差值大于等于第一预设差值的第一时刻,以及帧率变化查找大于等于第二预设差值的第二时刻;
获取所述第一时刻和所述第二时刻的终端执行操作,确定所述终端执行操作是否为异常操作类型,在所述终端执行操作为所述异常操作类型时,确定所述目标终端存在异常。
进一步的,在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值的步骤之后,还包括:
获取所述目标终端的历史内存值,将所述历史内存值推送至所述目标终端的显示界面。
为了解决上述技术问题,本申请实施例还提供一种内存帧率检测装置,采用了如下所述的技术方案:
获取模块,用于在目标终端中创建子线程,基于所述子线程对所述目标终端应用的内存值进行循环获取;
确认模块,用于确定当前应用的内存值的获取时长是否大于等于预设时间阈值,在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值;
检测模块,用于检测所述目标终端的垂直同步信号,获取所述垂直同步信号的同步时间差,根据所述同步时间差计算所述目标终端的当前帧率;
推送模块,用于根据所述内存值确定所述目标终端的总内存,推送所述总内存和所述当前帧率至所述目标终端的显示界面。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
在目标终端中创建子线程,基于所述子线程对所述目标终端应用的内存值进行循环获取;
确定当前应用的内存值的获取时长是否大于等于预设时间阈值,在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值;
检测所述目标终端的垂直同步信号,获取所述垂直同步信号的同步时间差,根据所述同步时间差计算所述目标终端的当前帧率;
根据所述内存值确定所述目标终端的总内存,推送所述总内存和所述当前帧率至所述目标终端的显示界面。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
在目标终端中创建子线程,基于所述子线程对所述目标终端应用的内存值进行循环获取;
确定当前应用的内存值的获取时长是否大于等于预设时间阈值,在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值;
检测所述目标终端的垂直同步信号,获取所述垂直同步信号的同步时间差,根据所述同步时间差计算所述目标终端的当前帧率;
根据所述内存值确定所述目标终端的总内存,推送所述总内存和所述当前帧率至所述目标终端的显示界面。
本申请提出的内存帧率检测方法,通过在目标终端中创建子线程,基于子线程对目标终端应用的内存值进行循环获取,避免了对主线程的占用,提高了内存的获取效率;之后,确定当前应用的内存值的获取时长是否大于等于预设时间阈值,在获取时长大于等于预设时间阈值时,延迟获取当前应用的内存值,由此避免对高占用内存的长时间获取;而后,检测目标终端的垂直同步信号,获取垂直同步信号的同步时间差,根据同步时间差计算目标终端的当前帧率;最后,根据内存值确定目标终端的总内存,推送总内存和当前帧率至目标终端的显示界面,由此,实现了对目标终端内存和帧率的实时获取,并且避免了当前内存和帧率获取的卡顿,进一步提高了对目标终端内存和帧率获取的效率和准确率。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2根据本申请的内存帧率检测方法的一个实施例的流程图;
图3是根据本申请的内存帧率检测装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
附图标记:内存帧率检测装置300、获取模块301、确认模块302、检测模块303以及推送模块304。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving PictureExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的内存帧率检测方法一般由服务器/终端设备执行,相应地,内存帧率检测装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的内存帧率检测的方法的一个实施例的流程图。所述的内存帧率检测方法,包括以下步骤:
步骤S201,在目标终端中创建子线程,基于所述子线程对所述目标终端应用的内存值进行循环获取。
在本实施例中,为了避免对主线程的频繁调用而导致内存获取的卡顿,在目标终端中创建子线程,基于该子线程的计时器对目标终端的当前内存进行循环获取。具体地,通过在目标终端中创建目标对象(如handlerThread对象),基于该目标对象可以开启子线程;之后,在该子线程内对目标终端的应用的内存值进行循环获取。具体地,循环获取可以为定时循环获取,在子线程开启时,创建定时任务,通过该定时任务对应用的内存值进行定时循环获取。
步骤S202,用于确定当前应用的内存值的获取时长是否大于等于预设时间阈值,在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值。
在本实施例中,在对目标终端的当前应用的内存值进行获取时,确定当前应用的内存值的获取时长是否大于等于预设时间阈值,若该获取时长小于预设时间阈值,则记录当前应用的内存值,在获取到目标终端的所有应用的内存值时,计算目标终端的总内存,推送该总内存至目标终端的显示界面。若该获取时长大于等于预设时间阈值,即表示当前应用的内存值在第一次获取时,目标终端可能存在卡顿或者目标终端的CPU负载过大。此时,停止对当前应用的内存值的获取,直接展示上一次获取到的历史内存值,并对当前的内存值进行延迟获取。具体地,在第一次在预设时间阈值内未获取到当前应用的内存值时,等待预设的延迟时长,而后对该应用的内存值进行再次获取;第二次获取应用的内存值的获取时长大于第一次的获取时长,若第二次无法获取到该应用的内存值,则继续延迟获取,并对此后的每一次获取时长进行调整,直至获取到该应用的内存值。
步骤S203,检测所述目标终端的垂直同步信号,获取所述垂直同步信号的同步时间差,根据所述同步时间差计算所述目标终端的当前帧率。
在本实施例中,垂直同步信号为由目标终端的显示界面在每显示完一帧后发送的信号,垂直同步信号会发生周期性的硬件中断,该标准中断周期通常为16ms。因此,检测目标终端的垂直同步信号,获取该垂直同步信号的同步时间差,若该同步时间差大于该垂直同步信号的标准中断周期,即表示当前目标终端可能存在丢帧;若该同步时间差小于等于该垂直同步信号的标准中断周期,即表示当前目标终端帧率正常。其中,该同步时间差为两个垂直同步信号之间的时间差值,根据该同步时间差计算得到目标终端的当前帧率。
步骤S204,根据所述内存值确定所述目标终端的总内存,推送所述总内存和所述当前帧率至所述目标终端的显示界面。
在本实施例中,在得到目标终端的内存值和当前帧率时,根据该内存值计算目标终端的总内存,将该总内存和该目标帧率推送至该目标终端的显示界面。
需要强调的是,为进一步保证上述内存值的私密和安全性,上述内存值还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实现了对目标终端内存和帧率的实时获取,并且避免了当前内存和帧率获取的卡顿,进一步提高了对目标终端内存和帧率获取的效率和准确率。
在本实施例的一些可选的实现方式中,上述在目标终端中创建子线程,基于所述子线程对所述目标终端应用的内存值进行循环获取的步骤包括:
在所述目标终端中创建目标对象,基于所述目标对象开启所述子线程;
创建计时器,根据所述计时器在所述子线程中循环读取所述目标终端应用的内存值。
在本实施例中,目标对象为目标终端的线程处理对象,基于该目标对象可以开启子线程并对子线程的任务进行处理。因此,在目标终端中创建目标对象(如HandlerThread对象),基于该目标对象开启子线程,之后,创建计时器,根据该计时器在该子线程内循环读取该目标终端应用的当前内存值,在达到该计时器设定的时间时则停止此次对该目标终端应用的内存值的获取。其中,计时器为应用的内存值的获取时长的计时工具,通过该计时器可以对应用的内存值的获取时长进行计时。
本实施例通过计时器在子线程中对目标终端应用的内存值进行循环获取,使得通过该计时器能够对每次内存值的获取时长进行计时,从而根据该获取时长调整获取方式,以避免对高内存的检测,进一步提高内存的获取效率。
在本实施例的一些可选的实现方式中,上述在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值的步骤包括:
在所述获取时长大于等于所述预设时间阈值时,获取延迟初值;
根据所述延迟初值的预设等比值计算延迟时长,基于所述延迟时长对所述当前应用的内存值进行延迟获取。
在本实施例中,在目标终端应用的内存值的获取时长大于等于预设时间阈值时,获取延迟初值,其中,延迟初值为在第一次获取时长大于等于预设时间阈值后的默认延迟时长;在第一次对应用的内存值获取完成时,则延迟该延迟初值的时长,对该应用的内存值进行第二次获取;若第二次的获取时长仍然大于等于预设时间阈值,则基于该延迟初值的预设等比值对应用的内存值的获取时刻进行延迟,在达到相适应的延迟时长时,再次对应用的内存值进行获取,直至获取到该内存值。例如,延迟初值为2s,每次延迟等比值为2,则计算得到此后每次的延迟时长为4s、8s、16s……在获取目标终端应用的内存值时,则按照该延迟时长的顺序依次对应用的内存值进行延迟获取。
除此之外,除了对每次获取的延迟时长进行限制外,还可以对每次获取内存值的获取时长的预设时间阈值进行调整。例如,在第一次未获取到内存值时,在延迟对应的延迟时长之后,将第二次预设时间阈值调整为4s,若在4s内仍未获取到内存值,则依次延迟获取。
本实施例通过对应用的内存值进行延迟获取,避免了对高内存的长时间获取而导致的时间浪费,进一步提高了内存获取效率。
在本实施例的一些可选的实现方式中,上述根据所述同步时间差计算所述目标终端的当前帧率的步骤包括:
获取所述垂直同步信号的标准中断周期和所述目标终端的标准帧率;
计算所述标准中断周期和所述同步时间差的差值,根据所述差值和所述标准帧率计算得到所述目标终端的当前帧率。
在本实施例中,目标终端的垂直同步信号会发生周期性的中断,不同硬件设备的标准中断周期可能会不同,通常情况下,该垂直同步信号的标准中断周期为16ms。获取目标终端垂直同步信号的标准中断周期以及目标终端的标准帧率,计算该同步时间差和标准中断周期的差值,以及该差值与同步时间差的比值;之后,将该比值与标准帧率相乘,得到帧率差值,该标准帧率减去该帧率差值,即计算得到目标终端的当前帧率。例如,同步时间差为32ms,标准中断周期为16ms,其差值为16ms,即存在16ms延迟;标准帧率为60帧,计算得到的当前帧率则为30帧。
本实施例通过同步时间差和标准帧率计算目标终端的当前帧率,使得通过垂直同步信号的同步时间差能够对当前目标终端的帧率进行精确计算。
在本实施例的一些可选的实现方式中,在上述推推送所述总内存和所述当前帧率至所述目标终端的显示界面的步骤之后,还包括:
存储所述总内存和所述当前帧率至所述目标终端的存储卡中,在接收到所述目标终端的异常检测指令时,调用所述存储卡的存储记录和所述目标终端的应用日志;
基于所述存储记录和所述应用日志,确定所述目标终端是否存在异常。
在本实施例中,在将总内存和当前帧率推送至目标终端的显示界面之后,存储该总内存和当前帧率至目标终端的存储卡(如SD卡)中,当接收到该目标终端的异常检测指令时,调用该存储卡的存储记录和该目标终端的应用日志。根据该存储记录和该应用日志,确定该目标终端中总内存和帧率存在异常变化的时间点,从而查找该目标终端的异常位置。若基于该存储记录和应用日志,目标终端的总内存和帧率均在固定范围内变化,则确定该目标终端不存在异常。
本实施例通过目标终端的存储记录和应用日志对总内存和帧率进行监控,实现了对目标终端异常的高效检测,避免了由于终端异常而导致的设备卡顿。
在本实施例的一些可选的实现方式中,上述基于所述存储记录和所述应用日志,确定所述目标终端是否存在异常的步骤包括:
基于所述存储记录和所述应用日志,查找内存变化差值大于等于第一预设差值的第一时刻,以及帧率变化查找大于等于第二预设差值的第二时刻;
获取所述第一时刻和所述第二时刻的终端执行操作,确定所述终端执行操作是否为异常操作类型,在所述终端执行操作为所述异常操作类型时,确定所述目标终端存在异常。
在本实施例中,在得到存储记录和应用记录时,根据该存储记录和应用日志,获取记录的不同时间点的内存值和帧率值;确定内存变化差值大于等于第一预设差值的第一时刻,以及帧率变化值大于等于第二预设差值的第二时刻;其中,该第一时刻为内存差值大于等于第一预设差值的时刻,该第一时刻可以包括多个时刻,第二时刻同理。在得到第一时刻和第二时刻时,获取该第一时刻和第二时刻分别对应的终端执行操作,确定该终端执行操作是否为异常操作类型;若该终端执行操作为异常操作类型,则确定该目标终端存在异常;若该终端执行操作非异常操作类型,则确定该目标终端不存在异常。其中,异常操作类型可以为对目标终端中敏感信息的增改删等操作。
本实施例通过存储记录和应用日志,确定内存值和帧率变化较大的时刻,之后根据该时刻确定是否存在对目标终端的异常操作,实现了对异常操作的精确定位,提高了目标终端的异常检测效率。
在本实施例的一些可选的实现方式中,在上述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值的步骤之后,还包括:
获取所述目标终端的历史内存值,将所述历史内存值推送至所述目标终端的显示界面。
在本实施例中,为了对目标终端的内存进行实时推送,在应用的内存值的获取时长大于等于预设时间阈值,对该应用的内存值进行延迟获取之后,还可以获取目标终端的历史内存值,将该历史内存值推送至该目标终端的显示界面。除此之外,在未获取到该应用的内存值时,亦可以将能够获取到的应用的内存值进行累加,得到临时内存值,将该临时内存值推送至目标终端的显示界面。由此,可以避免对高内存占用的应用进行长时间的内存获取。
本实施例通过将历史内存值推送至目标终端的显示界面,进一步实现了对目标终端内存值的实时推送。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种内存帧率检测装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的内存帧率检测装置300包括:获取模块301、确认模块302、检测模块303以及推送模块304。其中:
获取模块301,用于在目标终端中创建子线程,基于所述子线程对所述目标终端应用的内存值进行循环获取;
在本实施例的一些可选的实现方式中,获取模块301包括:
开启单元,用于在所述目标终端中创建目标对象,基于所述目标对象开启所述子线程;
创建单元,用于创建计时器,根据所述计时器在所述子线程中循环读取所述目标终端应用的内存值。
在本实施例中,为了避免对主线程的频繁调用而导致内存获取的卡顿,在目标终端中创建子线程,基于该子线程的计时器对目标终端的当前内存进行循环获取。具体地,通过在目标终端中创建目标对象(如handlerThread对象),基于该目标对象可以开启子线程;之后,在该子线程内对目标终端的应用的内存值进行循环获取。具体地,循环获取可以为定时循环获取,在子线程开启时,创建定时任务,通过该定时任务对应用的内存值进行定时循环获取。
确认模块302,用于确定当前应用的内存值的获取时长是否大于等于预设时间阈值,在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值;
在本实施例的一些可选的实现方式中,确认模块302包括:
第一获取单元,用于在所述获取时长大于等于所述预设时间阈值时,获取延迟初值;
第二获取单元,用于根据所述延迟初值的预设等比值计算延迟时长,基于所述延迟时长对所述当前应用的内存值进行延迟获取。
在本实施例中,在对目标终端的当前应用的内存值进行获取时,确定当前应用的内存值的获取时长是否大于等于预设时间阈值,若该获取时长小于预设时间阈值,则记录当前应用的内存值,在获取到目标终端的所有应用的内存值时,计算目标终端的总内存,推送该总内存至目标终端的显示界面。若该获取时长大于等于预设时间阈值,即表示当前应用的内存值在第一次获取时,目标终端可能存在卡顿或者目标终端的CPU负载过大。此时,停止对当前应用的内存值的获取,直接展示上一次获取到的历史内存值,并对当前的内存值进行延迟获取。具体地,在第一次在预设时间阈值内未获取到当前应用的内存值时,等待预设的延迟时长,而后对该应用的内存值进行再次获取;第二次获取应用的内存值的获取时长大于第一次的获取时长,若第二次无法获取到该应用的内存值,则继续延迟获取,并对此后的每一次获取时长进行调整,直至获取到该应用的内存值。
检测模块303,用于检测所述目标终端的垂直同步信号,获取所述垂直同步信号的同步时间差,根据所述同步时间差计算所述目标终端的当前帧率;
在本实施例的一些可选的实现方式中,检测模块303包括:
第三获取单元,用于获取所述垂直同步信号的标准中断周期和所述目标终端的标准帧率;
计算单元,用于计算所述标准中断周期和所述同步时间差的差值,根据所述差值和所述标准帧率计算得到所述目标终端的当前帧率。
在本实施例中,垂直同步信号为由目标终端的显示界面在每显示完一帧后发送的信号,垂直同步信号会发生周期性的硬件中断,该标准中断周期通常为16ms。因此,检测目标终端的垂直同步信号,获取该垂直同步信号的同步时间差,若该同步时间差大于该垂直同步信号的标准中断周期,即表示当前目标终端可能存在丢帧;若该同步时间差小于等于该垂直同步信号的标准中断周期,即表示当前目标终端帧率正常。其中,该同步时间差为两个垂直同步信号之间的时间差值,根据该同步时间差计算得到目标终端的当前帧率。
推送模块304,用于根据所述内存值确定所述目标终端的总内存,推送所述总内存和所述当前帧率至所述目标终端的显示界面。
在本实施例中,在得到目标终端的内存值和当前帧率时,根据该内存值计算目标终端的总内存,将该总内存和该目标帧率推送至该目标终端的显示界面。
需要强调的是,为进一步保证上述内存值的私密和安全性,上述内存值还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在本实施例的一些可选的实现方式中,上述内存帧率检测装置400还包括:
存储子模块,用于存储所述总内存和所述当前帧率至所述目标终端的存储卡中,在接收到所述目标终端的异常检测指令时,调用所述存储卡的存储记录和所述目标终端的应用日志;
确认子模块,用于基于所述存储记录和所述应用日志,确定所述目标终端是否存在异常。
在本实施例的一些可选的实现方式中,确认子模块包括:
查找单元,用于基于所述存储记录和所述应用日志,查找内存变化差值大于等于第一预设差值的第一时刻,以及帧率变化查找大于等于第二预设差值的第二时刻;
确认单元,用于获取所述第一时刻和所述第二时刻的终端执行操作,确定所述终端执行操作是否为异常操作类型,在所述终端执行操作为所述异常操作类型时,确定所述目标终端存在异常。
在本实施例中,在将总内存和当前帧率推送至目标终端的显示界面之后,存储该总内存和当前帧率至目标终端的存储卡(如SD卡)中,当接收到该目标终端的异常检测指令时,调用该存储卡的存储记录和该目标终端的应用日志。根据该存储记录和该应用日志,确定该目标终端中总内存和帧率存在异常变化的时间点,从而查找该目标终端的异常位置。若基于该存储记录和应用日志,目标终端的总内存和帧率均在固定范围内变化,则确定该目标终端不存在异常。
在本实施例的一些可选的实现方式中,上述内存帧率检测装置400还包括:
获取子模块,用于获取所述目标终端的历史内存值,将所述历史内存值推送至所述目标终端的显示界面。
在本实施例中,为了对目标终端的内存进行实时推送,在应用的内存值的获取时长大于等于预设时间阈值,对该应用的内存值进行延迟获取之后,还可以获取目标终端的历史内存值,将该历史内存值推送至该目标终端的显示界面。除此之外,在未获取到该应用的内存值时,亦可以将能够获取到的应用的内存值进行累加,得到临时内存值,将该临时内存值推送至目标终端的显示界面。由此,可以避免对高内存占用的应用进行长时间的内存获取。
本实施例提出的内存帧率检测装置,实现了对目标终端内存和帧率的实时获取,并且避免了当前内存和帧率获取的卡顿,进一步提高了对目标终端内存和帧率获取的效率和准确率。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备6包括通过系统总线相互通信连接存储器61、处理器62、网络接口63。需要指出的是,图中仅示出了具有组件61-63的计算机设备6,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器61至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器61可以是所述计算机设备6的内部存储单元,例如该计算机设备6的硬盘或内存。在另一些实施例中,所述存储器61也可以是所述计算机设备6的外部存储设备,例如该计算机设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器61还可以既包括所述计算机设备6的内部存储单元也包括其外部存储设备。本实施例中,所述存储器61通常用于存储安装于所述计算机设备6的操作系统和各类应用软件,例如内存帧率检测方法的计算机可读指令等。此外,所述存储器61还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器62在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器62通常用于控制所述计算机设备6的总体操作。本实施例中,所述处理器62用于运行所述存储器61中存储的计算机可读指令或者处理数据,例如运行所述内存帧率检测方法的计算机可读指令。
所述网络接口63可包括无线网络接口或有线网络接口,该网络接口63通常用于在所述计算机设备6与其他电子设备之间建立通信连接。
本实施例提出的计算机设备,实现了对目标终端内存和帧率的实时获取,并且避免了当前内存和帧率获取的卡顿,进一步提高了对目标终端内存和帧率获取的效率和准确率。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的内存帧率检测方法的步骤。
本实施例提出的计算机可读存储介质,实现了对目标终端内存和帧率的实时获取,并且避免了当前内存和帧率获取的卡顿,进一步提高了对目标终端内存和帧率获取的效率和准确率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种内存帧率检测方法,其特征在于,包括下述步骤:
在目标终端中创建子线程,基于所述子线程对所述目标终端应用的内存值进行循环获取;
确定当前应用的内存值的获取时长是否大于等于预设时间阈值,在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值;
检测所述目标终端的垂直同步信号,获取所述垂直同步信号的同步时间差,根据所述同步时间差计算所述目标终端的当前帧率;
根据所述内存值确定所述目标终端的总内存,推送所述总内存和所述当前帧率至所述目标终端的显示界面。
2.根据权利要求1所述的内存帧率检测方法,其特征在于,所述在目标终端中创建子线程,基于所述子线程对所述目标终端应用的内存值进行循环获取的步骤包括:
在所述目标终端中创建目标对象,基于所述目标对象开启所述子线程;
创建计时器,根据所述计时器在所述子线程中循环读取所述目标终端应用的内存值。
3.根据权利要求1所述的内存帧率检测方法,其特征在于,所述在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值的步骤包括:
在所述获取时长大于等于所述预设时间阈值时,获取延迟初值;
根据所述延迟初值的预设等比值计算延迟时长,基于所述延迟时长对所述当前应用的内存值进行延迟获取。
4.根据权利要求1所述的内存帧率检测方法,其特征在于,所述根据所述同步时间差计算所述目标终端的当前帧率的步骤包括:
获取所述垂直同步信号的标准中断周期和所述目标终端的标准帧率;
计算所述标准中断周期和所述同步时间差的差值,根据所述差值和所述标准帧率计算得到所述目标终端的当前帧率。
5.根据权利要求1所述的内存帧率检测方法,其特征在于,在所述推送所述总内存和所述当前帧率至所述目标终端的显示界面的步骤之后,还包括:
存储所述总内存和所述当前帧率至所述目标终端的存储卡中,在接收到所述目标终端的异常检测指令时,调用所述存储卡的存储记录和所述目标终端的应用日志;
基于所述存储记录和所述应用日志,确定所述目标终端是否存在异常。
6.根据权利要求5所述的内存帧率检测方法,其特征在于,所述基于所述存储记录和所述应用日志,确定所述目标终端是否存在异常的步骤包括:
基于所述存储记录和所述应用日志,查找内存变化差值大于等于第一预设差值的第一时刻,以及帧率变化查找大于等于第二预设差值的第二时刻;
获取所述第一时刻和所述第二时刻的终端执行操作,确定所述终端执行操作是否为异常操作类型,在所述终端执行操作为所述异常操作类型时,确定所述目标终端存在异常。
7.根据权利要求1所述的内存帧率检测方法,其特征在于,在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值的步骤之后,还包括:
获取所述目标终端的历史内存值,将所述历史内存值推送至所述目标终端的显示界面。
8.一种内存帧率检测装置,其特征在于,包括:
获取模块,用于在目标终端中创建子线程,基于所述子线程对所述目标终端应用的内存值进行循环获取;
确认模块,用于确定当前应用的内存值的获取时长是否大于等于预设时间阈值,在所述获取时长大于等于所述预设时间阈值时,延迟获取所述当前应用的内存值;
检测模块,用于检测所述目标终端的垂直同步信号,获取所述垂直同步信号的同步时间差,根据所述同步时间差计算所述目标终端的当前帧率;
推送模块,用于根据所述内存值确定所述目标终端的总内存,推送所述总内存和所述当前帧率至所述目标终端的显示界面。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的内存帧率检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的内存帧率检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210253906.9A CN114637651A (zh) | 2022-03-15 | 2022-03-15 | 内存帧率检测方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210253906.9A CN114637651A (zh) | 2022-03-15 | 2022-03-15 | 内存帧率检测方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114637651A true CN114637651A (zh) | 2022-06-17 |
Family
ID=81948201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210253906.9A Pending CN114637651A (zh) | 2022-03-15 | 2022-03-15 | 内存帧率检测方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114637651A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661987A (zh) * | 2022-12-29 | 2023-08-29 | 荣耀终端有限公司 | 内存申请方法和电子设备 |
-
2022
- 2022-03-15 CN CN202210253906.9A patent/CN114637651A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661987A (zh) * | 2022-12-29 | 2023-08-29 | 荣耀终端有限公司 | 内存申请方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414334B (zh) | 基于云技术的文件分片上传方法、装置、设备及存储介质 | |
CN111597388B (zh) | 基于分布式系统的样本采集方法、装置、设备及介质 | |
CN111813573B (zh) | 管理平台与机器人软件的通信方法及其相关设备 | |
CN112184169A (zh) | 用户待办事项的动态规划方法、装置、设备及存储介质 | |
CN112631910A (zh) | 前端测试方法、装置、计算机设备及存储介质 | |
CN110928950A (zh) | 区块链交易信息管理方法、装置、计算机设备及存储介质 | |
CN112468409A (zh) | 访问控制方法、装置、计算机设备及存储介质 | |
CN112463422A (zh) | 物联网故障运维方法、装置、计算机设备及存储介质 | |
CN111813418A (zh) | 分布式链路跟踪方法、装置、计算机设备及存储介质 | |
CN114637651A (zh) | 内存帧率检测方法、装置、计算机设备及存储介质 | |
CN112860662A (zh) | 数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN111813518A (zh) | 机器人预警方法、装置、计算机设备及存储介质 | |
CN112860762A (zh) | 用于检测时间段重叠的方法和装置 | |
CN110399131B (zh) | 提高应用程序稳定性的方法、装置、计算机设备 | |
CN112002352B (zh) | 随机播放音乐方法、装置、计算机设备及存储介质 | |
CN114615325A (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
CN114048059A (zh) | 接口的超时时间调整方法、装置、计算机设备及存储介质 | |
CN114995914A (zh) | 图片数据的处理方法、装置、计算机设备及存储介质 | |
CN115328764A (zh) | 基于自动化测试的测试代码优化方法及其相关设备 | |
CN114968822A (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN113626438A (zh) | 一种数据表管理的方法、装置、计算机设备及存储介质 | |
CN114143308A (zh) | 文件上传信息处理方法、装置、计算机设备及存储介质 | |
CN114189584B (zh) | 移动端获取通话时长方法、装置、电子设备及存储介质 | |
CN111327513B (zh) | 消息数据的推送方法、装置、计算机设备及存储介质 | |
CN116483627A (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 |