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除以内存总大小即可得当前内存使用率。