[發明專利]內存優化方法及裝置有效
| 申請號: | 201410584383.1 | 申請日: | 2014-10-27 |
| 公開(公告)號: | CN104375828B | 公開(公告)日: | 2018-07-27 |
| 發明(設計)人: | 閆昊;邱峰;張建春 | 申請(專利權)人: | 小米科技有限責任公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 張所明 |
| 地址: | 100085 北京市海淀區清*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 優化 方法 裝置 | ||
1.一種內存優化方法,其特征在于,包括:
接收攜帶有程序標識和內存釋放函數的內存優化代碼,所述程序標識用于標識需要釋放空閑內存的應用程序,所述空閑內存是所述應用程序在前臺運行時占用且在后臺運行時不需占用的內存;
通過所述內存優化代碼檢測所述應用程序是否從前臺切換到后臺運行;
若通過所述內存優化代碼檢測出所述應用程序從前臺切換到后臺運行,則通過所述應用程序調用所述內存釋放函數,所述內存釋放函數用于釋放所述空閑內存;
其中,所述內存釋放函數是對處于允許編輯狀態的私有函數進行編輯后得到的公有函數。
2.根據權利要求1所述的方法,其特征在于,若所述內存釋放函數是處于禁止編輯狀態的私有函數,則所述方法還包括:
獲取所述應用程序調用的公有函數的絕對地址,其中,所述公有函數具有調用所述內存釋放函數的權限;
對所述公有函數的絕對地址進行顯示,所述公有函數的絕對地址用于指示計算所述內存釋放函數的絕對地址且將所述內存釋放函數的絕對地址添加到所述內存優化代碼中,所述內存釋放函數的絕對地址等于所述公有函數的絕對地址加上所述公有函數和所述內存釋放函數的相對地址,所述公有函數和所述內存釋放函數的相對地址由預設的符號表提供。
3.根據權利要求2所述的方法,其特征在于,所述獲取所述應用程序調用的公有函數的絕對地址,包括:
接收攜帶有所述程序標識和所述公有函數的函數標識的地址讀取指令;
在動態鏈接庫中,查找所述應用程序調用的所述公有函數的絕對地址。
4.根據權利要求2或3所述的方法,其特征在于,所述通過所述應用程序調用所述內存釋放函數,包括:
通過所述內存優化代碼將所述內存釋放函數的絕對地址發送給所述應用程序;
在所述內存釋放函數的絕對地址的指示下,通過所述應用程序調用所述內存釋放函數。
5.一種內存優化裝置,其特征在于,包括:
代碼接收模塊,被配置為接收攜帶有程序標識和內存釋放函數的內存優化代碼,所述程序標識用于標識需要釋放空閑內存的應用程序,所述空閑內存是所述應用程序在前臺運行時占用且在后臺運行時不需占用的內存;
狀態檢測模塊,被配置為通過所述代碼接收模塊接收的所述內存優化代碼檢測所述應用程序是否從前臺切換到后臺運行;
函數調用模塊,被配置為當所述狀態檢測模塊通過所述內存優化代碼檢測出所述應用程序從前臺切換到后臺運行時,通過所述應用程序調用所述內存釋放函數,所述內存釋放函數用于釋放所述空閑內存;
其中,所述內存釋放函數是對處于允許編輯狀態的私有函數進行編輯后得到的公有函數。
6.根據權利要求5所述的裝置,其特征在于,當所述內存釋放函數是處于禁止編輯狀態的私有函數時,所述裝置還包括:
地址獲取模塊,被配置為獲取所述應用程序調用的公有函數的絕對地址,其中,所述公有函數具有調用所述內存釋放函數的權限;
地址顯示模塊,被配置為對所述地址獲取模塊獲取的所述公有函數的絕對地址進行顯示,所述公有函數的絕對地址用于指示計算所述內存釋放函數的絕對地址且將所述內存釋放函數的絕對地址添加到所述內存優化代碼中,所述內存釋放函數的絕對地址等于所述公有函數的絕對地址加上所述公有函數和所述內存釋放函數的相對地址,所述公有函數和所述內存釋放函數的相對地址由預設的符號表提供。
7.根據權利要求6所述的裝置,其特征在于,所述地址獲取模塊,包括:
指令接收子模塊,被配置為接收攜帶有所述程序標識和所述公有函數的函數標識的地址讀取指令;
地址查找子模塊,被配置為在動態鏈接庫中,查找所述指令接收子模塊指示的所述應用程序調用的所述公有函數的絕對地址。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于小米科技有限責任公司,未經小米科技有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410584383.1/1.html,轉載請聲明來源鉆瓜專利網。





