[發明專利]IOS應用的底層運行性能監測方法、介質、設備及系統有效
| 申請號: | 201810065383.9 | 申請日: | 2018-01-23 |
| 公開(公告)號: | CN108197005B | 公開(公告)日: | 2021-10-15 |
| 發明(設計)人: | 張駿;張文明;陳少杰 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | G06F11/30 | 分類號: | G06F11/30 |
| 代理公司: | 武漢智權專利代理事務所(特殊普通合伙) 42225 | 代理人: | 張凱 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | ios 應用 底層 運行 性能 監測 方法 介質 設備 系統 | ||
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除以內存總大小即可得當前內存使用率。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810065383.9/1.html,轉載請聲明來源鉆瓜專利網。





