[發明專利]一種統計應用程序中的函數調用的方法及組件有效
| 申請號: | 201710206602.6 | 申請日: | 2017-03-31 |
| 公開(公告)號: | CN107168857B | 公開(公告)日: | 2021-01-01 |
| 發明(設計)人: | 周志剛;陳少杰;張文明 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | G06F11/34 | 分類號: | G06F11/34 |
| 代理公司: | 北京眾達德權知識產權代理有限公司 11570 | 代理人: | 劉杰 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 統計 應用程序 中的 函數 調用 方法 組件 | ||
1.一種統計應用程序中的函數調用的方法,所述方法應用在統計應用程序中的函數調用的組件中,其特征在于,所述方法包括:
在所述應用程序運行時,利用所述組件中的鉤子函數庫監控統計調用信息文件MAP文件中的所有函數的函數頭在預設時間內各自的調用次數,和所述所有函數的函數頭各自的調用時刻;其中,所述組件注入所述應用程序的進程中;
利用所述鉤子函數庫監控統計所述MAP文件中的所有函數的函數尾各自的調用時刻;
基于所述MAP文件中的所述所有函數的函數頭各自的調用時刻以及所述所有函數的函數尾各自的調用時刻,確定出所述所有函數在所述預設時間內的調用時間,以在所述應用程序運行時,實現統計所述所有函數的調用情況;
所述MAP文件中至少記錄了所述所有函數的函數名稱、函數地址,函數長度,所有的全局變量和全局變量名的地址;其中,所述所有函數的函數地址為各自相對于所述組件的函數地址。
2.如權利要求1所述的方法,其特征在于,所述利用所述組件中的鉤子函數庫監控統計調用信息文件MAP文件中的所有函數的函數頭在預設時間內各自的調用次數,和所述所有函數的函數頭各自的調用時刻之前,還包括:
利用所述鉤子函數庫的鉤子函數監控所述所有函數的函數頭。
3.如權利要求2所述的方法,其特征在于,所述利用所述鉤子函數庫的鉤子函數監控所述所有函數的函數頭,包括:
獲取所述組件在終端設備的內存中的起始地址;
讀取所述MAP文件中的所有函數的函數名稱、函數地址;
將所述所有函數的函數地址各自相對于所述組件的函數地址分別和所述組件在內存中的起始地址求和,獲得所述所有函數各自的內存地址;所述所有函數各自的內存地址就是所述所有函數各自的函數頭;
利用所述鉤子函數庫對所述所有函數各自的內存地址進行監控。
4.如權利要求3所述的方法,其特征在于,所述將所述所有函數的函數地址各自相對于所述組件的函數地址分別和所述組件在內存中的起始地址求和,獲得所述所有函數各自的內存地址;所述所有函數各自的內存地址就是所述所有函數各自的函數頭,包括:
利用所述鉤子函數庫監控所述所有函數從各自的內存地址調用的調用次數和調用時刻。
5.如權利要求1或2所述的方法,其特征在于,所述利用所述鉤子函數庫監控統計所述MAP文件中的所有函數的函數尾各自的調用時刻,包括:
讀取所述所有函數的函數名稱、函數地址、函數長度;
將所述所有函數各自的函數地址和函數長度求和,獲得所述所有函數各自的尾地址;
利用所述鉤子函數庫對所述所有函數各自的尾地址進行監控,獲得所述所有函數各自的尾地址的調用時刻。
6.一種統計應用程序中的函數調用的組件,其特征在于,所述組件注入在所述應用程序的進程中,用以對所述應用程序中的所有函數的調用時間和調用次數進行監控,包括:
第一監控模塊,用于在所述應用程序運行時,利用所述組件中的鉤子函數庫監控統計調用信息文件MAP文件中的所有函數的函數頭在預設時間內各自的調用次數,和所述所有函數的函數頭各自的調用時刻;其中,所述組件注入所述應用程序的進程中;
第二監控模塊,用于利用所述鉤子函數庫監控統計所述MAP文件中的所有函數的函數尾各自的調用時刻;
確定模塊,用于基于所述MAP文件中的所述所有函數的函數頭各自的調用時刻以及所述所有函數的函數尾各自的調用時刻,確定出所述所有函數在所述預設時間內的調用時間;
所述MAP文件中至少記錄了所述所有函數的函數名稱、函數地址,函數長度,所有的全局變量和全局變量名的地址;其中,所述所有函數的函數地址為各自相對于所述組件的函數地址。
7.如權利要求6所述的組件,其特征在于,所述組件還包括:
第三監控模塊,用于利用所述鉤子函數庫的鉤子函數監控所述所有函數的函數頭。
8.如權利要求7所述的組件,其特征在于,所述第三監控模塊,包括:
獲取模塊,用于獲取所述組件在終端設備的內存中的起始地址;
讀取模塊,用于讀取所述MAP文件中的所有函數的函數名稱、函數地址;
獲得模塊,用于將所述所有函數的函數地址各自相對于所述組件的函數地址分別和所述組件在內存中的起始地址求和,獲得所述所有函數各自的內存地址;所述所有函數各自的內存地址就是所述所有函數各自的函數頭;
監控子模塊,用于利用所述鉤子函數庫對所述所有函數各自的內存地址進行監控。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710206602.6/1.html,轉載請聲明來源鉆瓜專利網。





