[发明专利]IOS应用的方法耗时、加载视图耗时的监测方法及系统有效
申请号: | 201810065372.0 | 申请日: | 2018-01-23 |
公开(公告)号: | CN108197004B | 公开(公告)日: | 2021-04-27 |
发明(设计)人: | 张骏;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30 |
代理公司: | 武汉智权专利代理事务所(特殊普通合伙) 42225 | 代理人: | 张凯 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | ios 应用 方法 耗时 加载 视图 监测 系统 | ||
本发明公开了一种IOS应用的方法耗时、加载视图耗时的监测方法及系统,涉及IOS应用技术领域,本发明将objc_msgSend函数指针设置为hook函数;IOS应用调用主线程中任一方法时,通过objc_msgSend函数指针调用hook函数,通过hook函数计算出IOS应用调用主线程中该方法时objc_msgSend函数的调用耗时;通过调用hook函数可分别获取IOS应用调用主线程中各方法时objc_msgSend函数的调用耗时,由于主线程中方法的调用都会对应objc_msgSend函数的调用,objc_msgSend函数的调用耗时即为调取主线程中方法时所耗费时间,从而实现对IOS应用运行时调用主线程中各方法的调用耗时监控。
技术领域
本发明涉及IOS应用技术领域,具体涉及一种IOS应用的方法耗时、加载视图耗时的监测方法及系统。
背景技术
在移动应用的开发过程中,可能会遇到一些性能瓶颈,例如程序运行的卡顿或内存无法正确的释放,都无法得到很好的监控或反馈。一般的方法是将手机连上电脑,利用Xcode(一种Mac OS X操作系统上的集成开发工具)所带的Instrument工具进行监控。Xcode自带的Instrument工具是一个以独立APP形式存在的工具集,包含了很多强大的检测功能:其中包括在真机和模拟器上进行性能测试,对APP进行性能分析,检查一个或多个应用或进程的行为。Instrument工具主要用于在调试过程中随时发现问题,及时优化。但是Instrument工具只能供有应用源码的程序员使用,因此必须连接电脑,无法测量用户真实使用场景下的性能,即无法在IOS App发布之后依然对IOS App的运行情况进行有效的监控。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种IOS应用的方法耗时、加载视图耗时的监测方法及系统,实现IOS App发布之后对IOSApp的方法耗时的有效监控。
为达到以上目的,本发明采取的技术方案是:一种IOS应用的方法耗时监测方法,其用于监测所述IOS应用调用的主线程中各方法的调用耗时:
将objc_msgSend函数指针设置为hook函数;所述hook函数包括:第一函数,其用于获取objc_msgSend函数的参数;第二函数,其用于使用objc_msgSend函数的参数调取objc_msgSend函数并记录开始调取时间;第三函数,其用于objc_msgSend函数调取完毕时,记录objc_msgSend函数的调取结束时间,根据调取开始时间和调取结束时间计算出调取objc_msgSend函数的调用耗时;
IOS应用调用主线程中任一方法时,通过所述objc_msgSend函数指针调用hook函数,通过所述hook函数计算出调取主线程中该方法时objc_msgSend函数的调用耗时;通过调用hook函数分别获取IOS应用调用主线程中各方法时objc_msgSend函数的调用耗时;
定义一个Objective-C的类,并实现该类的单例加载;通过所述Objective-C的类分别获取IOS应用调用主线程中各方法时objc_msgSend函数的调用耗时并转换为所述Objective-C的类中的对象。
在上述技术方案的基础上,创建一个C语言文件MethodCoreLib.c及其头文件MethodCoreLib.h;在所述头文件中创建C语言层开始拦截API,C语言层停止拦截API和C语言层获取拦截结果API;在所述C语言文件MethodCoreLib.c文件中定义两个全局变量:拦截开关和拦截结果;拦截开关用于控制开始或停止通过所述objc_msgSend函数指针调用hook函数;拦截结果用于存储所述hook函数计算出的调取objc_msgSend函数的调用耗时;在C语言层开始拦截API中设置拦截开关为开始,在C语言层停止拦截API中设置拦截开关为停止,在C语言层获取拦截结果API中设置将拦截结果传出并置空;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810065372.0/2.html,转载请声明来源钻瓜专利网。