IOS应用的实时帧数监测方法、存储介质、设备及系统技术方案

技术编号:18496858 阅读:1190 留言:0更新日期:2018-07-21 20:04
本发明专利技术公开了一种IOS应用的实时帧数监测方法、存储介质、设备及系统,涉及IOS应用技术领域,本发明专利技术通过定义一个Objective‑C的类,并实现该类单例加载,在Objective‑C的类初始化时创建CADisplayLink,将CADisplayLink注册到IOS运行循环中;每次IOS运行循环结束时,调用CADisplayLink上绑定的回调方法计算当前帧数。本方案通过定义Objective‑C的类实现实时帧数监测,在IOS移动端开发Objective‑C的类所需代码小,运行时占用内存也小,因此本方案可实现IOS应用在移动端发布之后对移动端的IOS应用的实时帧数的有效管理。

Real time frame count monitoring method, storage medium, device and system for IOS application

【技术实现步骤摘要】
IOS应用的实时帧数监测方法、存储介质、设备及系统
本专利技术涉及IOS应用
,具体涉及一种IOS应用的实时帧数监测方法、存储介质、设备及系统。
技术介绍
在移动应用的开发过程中,可能会遇到一些性能瓶颈,例如程序运行的卡顿或内存无法正确的释放,都无法得到很好的监控或反馈。一般的方法是将手机连上电脑,利用Xcode(一种MacOSX操作系统上的集成开发工具)所带的Instrument工具进行监控。Xcode自带的Instrument工具是一个以独立APP形式存在的工具集,包含了很多强大的检测功能:其中包括在真机和模拟器上进行性能测试,对APP进行性能分析,检查一个或多个应用或进程的行为。Instrument工具主要用于在调试过程中随时发现问题,及时优化。但是Instrument工具只能供有应用源码的程序员使用,因此必须连接电脑,无法测量用户真实使用场景下的性能,即无法在IOS应用发布之后依然对IOS应用的运行情况进行有效的管理。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种IOS应用的实时帧数监测方法、存储介质、设备及系统,实现IOS应用发布之后对IOS应用的实时帧数的有效管理。为达到以上目的,本专利技术采取的技术方案是:一种IOS应用的实时帧数监测方法:定义一个Objective-C的类,并实现该类单例加载;在所述Objective-C的类初始化时创建定时器CADisplayLink,并绑定好CADisplayLink的回调方法,将CADisplayLink注册到IOS运行循环中;每次IOS运行循环结束时,调用CADisplayLink上绑定的回调方法计算出当前帧数;所述回调方法包括:从CADisplayLink中读取属性帧间隔,根据当前调用CADisplayLink的时间戳与上一次调用CADisplayLink的时间戳计算出两次调用的时间间隔,累计所述时间间隔内每次调用CADisplayLink的属性帧间隔得出该时间间隔内的累计帧数,用累计帧数除以时间间隔即可计算出当前帧数。在上述技术方案的基础上,在所述Objective-C的类中增加三个属性:累计帧数量、累计时间间隔和上一次调用的时间戳;调用CADisplayLink上绑定的回调方法计算当前帧数包括:调用CADisplayLink上绑定的回调方法,读取调用CADisplayLink时的时间戳,将CADisplayLink的属性帧间隔累计至所述累计帧数量;判断所述时间戳与所述上一次调用的时间戳之差值,若小于预设的差值阈值,则将当前时间戳与所述上一次调用的时间戳之差值累计至累计时间间隔中;若大于等于预设的差值阈值,则用累计帧数量除以累计时间间隔即为当前帧数,并置空累计帧数量和累计时间间隔,将所述上一次调用的时间戳的值设置为所述时间戳。在上述技术方案的基础上,所述预设的差值阈值为0.5秒。在上述技术方案的基础上,所述属性帧间隔默认值为1。本专利技术还公开了一种存储介质,该存储介质上存储有计算机程序:所述计算机程序被处理器执行时实现IOS应用的实时帧数监测方法。本专利技术还公开了一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序:处理器执行计算机程序时实现IOS应用的实时帧数监测方法。本专利技术还公开了一种IOS应用的实时帧数监测系统,包括:类创建模块,其用于定义一个Objective-C的类,并实现该类单例加载;定时器创建模块,其用于在所述Objective-C的类初始化时创建CADisplayLink,并绑定好CADisplayLink的回调方法,将CADisplayLink注册到IOS运行循环中;当前帧数计算模块,其用于每次IOS运行循环结束时,调用CADisplayLink上绑定的回调方法计算当前帧数;所述回调方法包括:从CADisplayLink中读取属性帧间隔,根据当前调用CADisplayLink的时间戳与上一次调用CADisplayLink的时间戳计算出两次调用的时间间隔,累计所述时间间隔内每次调用CADisplayLink的属性帧间隔得出该时间间隔内的累计帧数,用累计帧数除以时间间隔即可计算出当前帧数。在上述技术方案的基础上,类创建模块用于在所述Objective-C的类中增加三个属性:累计帧数量、累计时间间隔和上一次调用的时间戳;所述当前帧数计算模块用于调用CADisplayLink上绑定的回调方法,读取调用CADisplayLink时的时间戳,将CADisplayLink的属性帧间隔累计至所述累计帧数量;判断所述时间戳与所述上一次调用的时间戳之差值,若小于预设的差值阈值,则将当前时间戳与所述上一次调用的时间戳之差值累计至累计时间间隔中;若大于等于预设的差值阈值,则用累计帧数量除以累计时间间隔即为当前帧数,并置空累计帧数量和累计时间间隔,将所述上一次调用的时间戳的值设置为所述时间戳。在上述技术方案的基础上,所述预设的差值阈值为0.5秒。在上述技术方案的基础上,所述属性帧间隔默认值为1。与现有技术相比,本专利技术的优点在于:本专利技术通过定义一个Objective-C的类,并实现该类单例加载,在Objective-C的类初始化时创建CADisplayLink,将CADisplayLink注册到IOS运行循环中;每次IOS运行循环结束时,调用CADisplayLink上绑定的回调方法计算当前帧数。本方案通过定义Objective-C的类实现实时帧数监测,在IOS移动端开发Objective-C的类所需代码小,运行时占用内存也小,因此本方案可实现IOS应用在移动端发布之后对移动端的IOS应用的实时帧数的有效管理。附图说明图1为本专利技术实施例中IOS应用的实时帧数监测方法的流程示意图;图2为本专利技术实施例中IOS应用的实时帧数监测系统的结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。以下首先就本专利技术的术语进行解释和说明:Objective-C:Objective-C主要应用于IOS操作系统和IOS应用程序的编写。它是一个用C写成很小的运行库,令应用程序的尺寸增加很小,和大部分OO(ObjectOriented,面向对象)系统使用极大的VM执行时间会取代了整个系统的运作相反,Objective-C写成的程序通常不会比其原始码大很多。而其函式库亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。同时,Objective-C完全兼容标准C语言。Objective-C的类和属性:类是核心支持面向对象编程及Objective-C的特点,通常被称为用户定义的类型。类是用来指定对象的形式,它结合了数据表示和方法操纵这些数据转换成一个整齐的包。类的属性是用来提供访问其他类的类的实例变量。实现类单例加载:即保证一个类只生成一个实例对象。定时器:即CADisplayLink,CADisplayLink是一个能以和屏幕刷新率相同的频率将内容画到屏幕上的定时器。在应用中创建一个新的CAD本文档来自技高网...

【技术保护点】
1.一种IOS应用的实时帧数监测方法,其特征在于:定义一个Objective‑C的类,并实现该类单例加载;在所述Objective‑C的类初始化时创建定时器CADisplayLink,并绑定好CADisplayLink的回调方法,将CADisplayLink注册到IOS运行循环中;每次IOS运行循环结束时,调用CADisplayLink上绑定的回调方法计算出当前帧数;所述回调方法包括:从CADisplayLink中读取属性帧间隔,根据当前调用CADisplayLink的时间戳与上一次调用CADisplayLink的时间戳计算出两次调用的时间间隔,累计所述时间间隔内每次调用CADisplayLink的属性帧间隔得出该时间间隔内的累计帧数,用累计帧数除以时间间隔即可计算出当前帧数。

【技术特征摘要】
1.一种IOS应用的实时帧数监测方法,其特征在于:定义一个Objective-C的类,并实现该类单例加载;在所述Objective-C的类初始化时创建定时器CADisplayLink,并绑定好CADisplayLink的回调方法,将CADisplayLink注册到IOS运行循环中;每次IOS运行循环结束时,调用CADisplayLink上绑定的回调方法计算出当前帧数;所述回调方法包括:从CADisplayLink中读取属性帧间隔,根据当前调用CADisplayLink的时间戳与上一次调用CADisplayLink的时间戳计算出两次调用的时间间隔,累计所述时间间隔内每次调用CADisplayLink的属性帧间隔得出该时间间隔内的累计帧数,用累计帧数除以时间间隔即可计算出当前帧数。2.如权利要求1所述的一种IOS应用的实时帧数监测方法,其特征在于:在所述Objective-C的类中增加三个属性:累计帧数量、累计时间间隔和上一次调用的时间戳;调用CADisplayLink上绑定的回调方法计算当前帧数包括:调用CADisplayLink上绑定的回调方法,读取调用CADisplayLink时的时间戳,将CADisplayLink的属性帧间隔累计至所述累计帧数量;判断所述时间戳与所述上一次调用的时间戳之差值,若小于预设的差值阈值,则将当前时间戳与所述上一次调用的时间戳之差值累计至累计时间间隔中;若大于等于预设的差值阈值,则用累计帧数量除以累计时间间隔即为当前帧数,并置空累计帧数量和累计时间间隔,将所述上一次调用的时间戳的值设置为所述时间戳。3.如权利要求2所述的一种IOS应用的实时帧数监测方法,其特征在于:所述预设的差值阈值为0.5秒。4.如权利要求1所述的一种IOS应用的实时帧数监测方法,其特征在于:所述属性帧间隔默认值为1。5.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至4任一项所述的方法。6.一种电子设备,包括存储器和处...

【专利技术属性】
技术研发人员:张骏张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1