利索能及
我要发布
收藏
专利号: 2018100653839
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2024-12-09
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种IOS应用的底层运行性能监测方法,其特征在于:监测IOS应用的底层运行性能,包括监测的IOS应用运行占用的CPU使用率或内存使用率,其中:

监测的IOS应用运行占用的CPU使用率包括:定义第一Objective‑C的类,并实现其单例加载,在所述第一Objective‑C的类中增加第一通知观察者,使用所述通知观察者监听时钟心跳通知,并为所述第一通知观察者绑定第一调用方法;当收到时钟心跳通知时,调用所述第一调用方法查询IOS应用运行时当前task的每个线程的CPU使用率,并累加IOS应用运行时当前task的所有线程的CPU使用率计算出当前CPU使用率;

监测的IOS应用运行占用的内存使用率包括:定义第二Objective‑C的类,并实现其单例加载,在所述第二Objective‑C的类中增加第二通知观察者,使用所述第二通知观察者监听时钟心跳通知,并为所述第二通知观察者指定第二调用方法;当收到时钟心跳通知时,调用所述第二调用方法获取IOS应用运行时当前task占用的物理内存大小,使用IOS应用运行时当前task占用的物理内存大小除以内存总大小得出当前内存使用率;

调用所述第一调用方法查询IOS应用运行时当前task的每个线程的CPU使用率,并累加IOS应用运行时当前task的所有线程的CPU使用率计算出当前CPU使用率包括:使用IOS内核mach层内核提供的task_threads API获取当前task的线程列表;

遍历线程列表的所有线程,通过调用IOS内核mach层提供的thread_info API查询每个线程的信息以获取每个线程的使用率,累加所有线程的使用率即可得到当前CPU使用率;

在所述Objective‑C的类增加一个usage属性,通过将当前task的线程列表中每个线程的使用率累计至所述usage属性中实现累加IOS应用运行时当前task的所有线程的CPU使用率;

调用所述第二调用方法获取IOS应用运行时当前task占用的物理内存大小,使用IOS应用运行时当前task占用的物理内存大小除以内存总大小得出当前内存使用率包括:使用IOS内核mach层提供的task_info API获取当前task的信息,获取当前task的信息中的resident_size,使用所述resident_size除以内存总大小即可得当前内存使用率。

2.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1所述的方法。

3.一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,其特征在于:处理器执行计算机程序时实现权利要求1所述的方法。

4.一种IOS应用的底层运行性能监测系统,其特征在于,包括:CPU使用率监测模块,其用于定义第一Objective‑C的类,并实现其单例加载,在所述第一Objective‑C的类中增加第一通知观察者,使用所述通知观察者监听时钟心跳通知,并为所述第一通知观察者绑定第一调用方法;当收到时钟心跳通知时,调用所述第一调用方法查询IOS应用运行时当前task的每个线程的CPU使用率,并累加IOS应用运行时当前task所有线程的CPU使用率计算出当前CPU使用率;

内存使用率监测模块,其用于定义第二Objective‑C的类,并实现其单例加载,在所述第二Objective‑C的类中增加第二通知观察者,使用所述第二通知观察者监听时钟心跳通知,并为所述第二通知观察者指定第二调用方法;当收到时钟心跳通知时,调用所述第二调用方法获取IOS应用运行时当前task占用的物理内存大小,使用IOS应用运行时当前task占用的物理内存大小除以内存总大小得出当前内存使用率;

所述CPU使用率监测模块用于:

使用IOS内核mach层内核提供的task_threads API获取当前task的线程列表;

遍历线程列表的所有线程,通过调用IOS内核mach层提供的thread_info API查询每个线程的信息以获取每个线程的使用率,累加所有线程的使用率即可得到当前CPU使用率;

所述CPU使用率监测模块用于在所述Objective‑C的类增加一个usage属性,通过将每个线程的使用率累计至所述usage属性中实现累加IOS应用运行时当前task的所有线程的CPU使用率;

所述内存使用率监测模块用于:使用IOS内核mach层提供的task_info API获取当前task的信息,获取当前task的信息中的resident_size,使用所述resident_size除以内存总大小即可得当前内存使用率。