[發明專利]一種內存回收方法及裝置有效
| 申請號: | 201610855624.0 | 申請日: | 2016-09-27 |
| 公開(公告)號: | CN107220076B | 公開(公告)日: | 2018-10-30 |
| 發明(設計)人: | 楊啟彬;段小軍 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445;G06F12/02 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內存 回收 方法 裝置 | ||
1.一種內存回收方法,其特征在于,包括:
在確定系統當前的可用內存小于內存閾值時,從后臺進程列表中確定待回收內存的進程,其中,所述后臺進程列表包括一個或多個應用的進程,所述待回收內存的進程為所述一個或多個應用的進程中滿足進程所占用內存與內存壓力值的差值的絕對值小于預設閾值的條件的進程,所述內存壓力值為所述內存閾值與所述系統當前的可用內存的差值;
向系統內核發送處理指令,以觸發所述系統內核對所述待回收內存的進程進行處理以回收所述待回收內存的進程所占用的內存。
2.根據權利要求1所述的方法,其特征在于,在檢測到第一關鍵事件時觸發所述確定系統當前的可用內存小于內存閾值的操作,且所述內存閾值為與所述第一關鍵事件對應的第一內存閾值。
3.根據權利要求2所述的方法,其特征在于,所述第一關鍵事件包括如下事件中的任意一種:程序啟動開始事件、清理事件以及內存不足OOM事件。
4.根據權利要求1所述的方法,其特征在于,在檢測到第二關鍵事件且確定系統處于空閑狀態時觸發所述確定當前系統的可用內存小于內存閾值的操作,且所述內存閾值為與所述第二關鍵事件對應的第二內存閾值。
5.根據權利要求1所述的方法,其特征在于,在檢測到第二關鍵事件時觸發所述確定當前系統的可用內存小于內存閾值的操作,在確定系統處于空閑狀態時觸發所述從后臺進程列表中選擇待回收內存的進程的操作,且所述內存閾值為與所述第二關鍵事件對應的第二內存閾值。
6.根據權利要求4或5所述的方法,其特征在于,所述第二關鍵事件包括如下事件中的任意一種:程序啟動完成事件、亮屏事件、滅屏事件、觸屏事件、界面切換事件、任務切換完成事件以及廣播事件。
7.根據權利要求4或5任意一項所述的方法,其特征在于,所述確定系統處于空閑狀態包括:
判斷所述系統當前的負載是否小于負載閾值;
在所述系統當前的負載小于所述負載閾值的情況下,確定系統處于空閑狀態。
8.根據權利要求1所述的方法,其特征在于,在確定出的所述待回收的進程為多個的情況下,所述向系統內核發送處理指令包括:
調用多個線程向系統內核發送多個處理指令,其中,每個所述線程用于發送一個或多個處理指令。
9.根據權利要求1所述的方法,其特征在于,所述從后臺進程列表中確定待回收內存的進程包括:
根據應用的重要程度從低到高的順序,從所述后臺進程列表包括的多個應用中確定至少一個應用;
根據進程優先級從低到高的順序,從所述至少一個應用包括的進程中確定待回收內存的進程。
10.根據權利要求1所述的方法,其特征在于,所述方法還包括:
在確定所述系統當前的可用內存小于所述內存閾值時創建所述后臺進程列表。
11.根據權利要求1所述的方法,其特征在于,所述方法還包括:
在確定所述系統當前的可用內存小于所述內存閾值并且所述系統處于空閑狀態時創建所述后臺進程列表。
12.根據權利要求10或11所述的方法,其特征在于,所述創建所述后臺進程列表包括:
確定當前在后臺運行的每個應用的關鍵因素的分值,所述關鍵因素包括以下中的一個或多個:進程優先級、用戶使用習慣、進程占用系統資源以及應用的關聯關系;
針對每個所述應用,將所有所述關鍵因素的分值進行加權計算,獲得所述應用的重要程度;
根據所有所述應用的重要程度,對所有所述應用進行排序;
根據進程優先級,對排序后的每個所述應用包括的進程進行排序,以生成所述后臺進程列表。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610855624.0/1.html,轉載請聲明來源鉆瓜專利網。





