国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種緩存回收方法和裝置的制造方法

      文檔序號:9672987閱讀:363來源:國知局
      一種緩存回收方法和裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種緩存回收方法和緩存回收裝置。
      【背景技術(shù)】
      [0002]隨著安卓(Android)操作系統(tǒng)的普及,在Android系統(tǒng)上可運行的應(yīng)用程序也越來越豐富,許多應(yīng)用程序為了提升運行效率和流暢性,在其安裝并運行時,將應(yīng)用程序的用戶數(shù)據(jù)、臨時文件以及音頻、視頻等資源作為緩存文件存儲在Android設(shè)備的內(nèi)存中,隨著越來越多的應(yīng)用被使用,緩存文件越來越多,就會導(dǎo)致內(nèi)存空間不足。
      [0003]針對內(nèi)存空間不足的問題,現(xiàn)有技術(shù)中存在兩種內(nèi)存回收方法,一種是在進程申請內(nèi)存的過程中,發(fā)現(xiàn)需求的內(nèi)存空間不足時,發(fā)起內(nèi)存頁的回收動作,其回收的依據(jù)是通過內(nèi)存頁的活動性來判斷的,即越不活動的內(nèi)存頁越容易被回收;另一種內(nèi)存回收方法是Android系統(tǒng)按照優(yōu)先級清除進程的方式進行內(nèi)存回收,優(yōu)先級越高的進程越容易被清除,后臺進程的優(yōu)先級高,前臺進程的優(yōu)先級低。這兩種內(nèi)存回收方式都集成在了 Android系統(tǒng)的回收策略中,在Android系統(tǒng)運行過程中,一旦出現(xiàn)內(nèi)存空間不足,就進行這兩種內(nèi)存回收方式。
      [0004]但是,發(fā)明人發(fā)現(xiàn),當前臺活動的進程使用內(nèi)存空間較多時,不活動的內(nèi)存頁相對較少,此時如果采用第一種回收方式,效果很差,然而如果采用第二種方式直接將一些進程清除掉,自然就能將這些進程占用的所有內(nèi)存釋放掉,但是隨著系統(tǒng)運行的應(yīng)用越來越多,內(nèi)存空間的使用越來越大,越容易出現(xiàn)內(nèi)存空間不足的情況,這樣,在系統(tǒng)物理內(nèi)存總量較少,而同時打開的程序又比較多的情況下,采用第二種方式會比較容易地將前臺進程也清除,即將用戶當前正在使用的應(yīng)用關(guān)閉,嚴重影響用戶體驗。

      【發(fā)明內(nèi)容】

      [0005]本申請實施例通過提供一種緩存回收方法,在不影響用戶體驗的同時,實現(xiàn)了內(nèi)存的有效回收。
      [0006]相應(yīng)的,本申請實施例還提供了一種緩存回收裝置,用以保證上述緩存回收方法的實現(xiàn)及應(yīng)用。
      [0007]本發(fā)明實施例采用一種緩存回收方法,所述方法包括:接收進程發(fā)送的申請內(nèi)存的請求信息,其中,所述請求信息攜帶有所述進程所需內(nèi)存空間的大??;根據(jù)所述進程所需內(nèi)存空間的大小,判斷當前空閑的內(nèi)存空間是否滿足所述進程所需內(nèi)存空間;若否,則掃描進程表,并清除所述進程表中的后臺進程;判斷清除后臺進程之后的空閑內(nèi)存空間是否滿足所述進程所需內(nèi)存空間;若否,則判斷是否存在緩存頁回收標記;若不存在所述緩存頁回收標記,則回收緩存頁,設(shè)置緩存頁回收標記,并判斷回收緩存頁之后的空閑內(nèi)存空間是否滿足所述進程所需內(nèi)存空間,若存在所述緩存頁回收標記,則清除所述進程表中的前臺進程。
      [0008]本申請實施例提供的緩存回收方法中,當有進程申請內(nèi)存空間,但是當前空閑的內(nèi)存空間不滿足該進程所述進程所需內(nèi)存空間時,執(zhí)行掃描進程表的操作,通過掃描進程表,執(zhí)行清除后臺進程的操作,當把所有的后臺進程都清除后,判斷當前空閑的內(nèi)存空間是否滿足所述進程所需內(nèi)存空間,當此時的空閑內(nèi)存空間仍不滿足所述進程所需內(nèi)存空間時,查詢是否存在緩存頁回收標記,判斷是否已經(jīng)進行了緩存頁的回收,如果還沒有對緩存頁進行回收,則回收緩存頁,如果已經(jīng)進行過回收緩存頁的操作,則清除進程表中的前臺進程。本方案將回收緩存頁的動作加入到了整個Android系統(tǒng)的內(nèi)存回收策略中,提高了Android系統(tǒng)內(nèi)存回收的效率,而且,由于在清除后臺進程后,增加了緩存頁的回收,降低了前臺進程被清除的頻率,從而,降低了將用戶當前使用的應(yīng)用程序強制關(guān)閉的頻率,在一定程度上提高了用戶體驗。
      [0009]基于同樣的發(fā)明構(gòu)思,本申請實施例還提供了一種緩存回收裝置,該緩存回收裝置包括:接收單元,用于接收進程發(fā)送的申請內(nèi)存的請求信息,其中,所述請求信息攜帶有所述進程所需內(nèi)存空間的大小,并將所述進程所需內(nèi)存空間的大小發(fā)送給判斷單元;判斷單元,用于根據(jù)從所述接收單元獲取到的所述進程所需內(nèi)存空間的大小,判斷當前空閑的內(nèi)存空間是否滿足所述進程所需內(nèi)存空間,并將判斷結(jié)果發(fā)送給進程處理單元;進程處理單元,用于若接收到的判斷結(jié)果為否,則掃描進程表,并清除所述進程表中的后臺進程,并判斷清除后臺進程之后的空閑內(nèi)存空間是否滿足所述進程所需內(nèi)存空間,并將判斷結(jié)果發(fā)送給緩存頁處理單元;緩存頁處理單元,用于若接收到的進程處理單元發(fā)送的判斷結(jié)果為否,則判斷是否存在緩存頁回收標記,若不存在所述緩存頁回收標記,則回收緩存頁,設(shè)置緩存頁回收標記,并判斷回收緩存頁之后的空閑內(nèi)存空間是否滿足所述進程所需內(nèi)存空間,若存在所述緩存頁回收標記,則將存在所述緩存頁回收標記的通知發(fā)送給所述進程處理單元,由所述進程處理單元清除所述進程表中的前臺進程。
      [0010]本申請實施例提供的緩存回收裝置中,當接收單元接收到進程申請內(nèi)存空間的請求信息,但是當前空閑的內(nèi)存空間不滿足該進程所述進程所需內(nèi)存空間時,執(zhí)行掃描進程表的操作,通過進程處理單元掃描進程表,執(zhí)行清除后臺進程的操作,當把所有的后臺進程都清除后,判斷當前空閑的內(nèi)存空間是否滿足所述進程所需內(nèi)存空間,當此時的空閑內(nèi)存空間仍不滿足所述進程所需內(nèi)存空間時,再通過緩存頁處理單元查詢是否存在緩存頁回收標記,判斷是否已經(jīng)進行了緩存頁的回收,如果還沒有對緩存頁進行回收,則回收緩存頁,如果已經(jīng)進行過回收緩存頁的操作,則清除進程表中的前臺進程。本方案將回收緩存頁的動作加入到了整個Android系統(tǒng)的內(nèi)存回收策略中,提高了 Android系統(tǒng)內(nèi)存回收的效率,而且,由于在清除后臺進程后,增加了緩存頁的回收,降低了前臺進程被清除的頻率,從而,降低了將用戶當前使用的應(yīng)用程序強制關(guān)閉的頻率,在一定程度上提高了用戶體驗。
      【附圖說明】
      [0011]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0012]圖1為本申請實施例提供的一種緩存回收方法的步驟流程示意圖;
      圖2為本申請另一實施例提供的一種緩存回收方法的步驟流程示意圖; 圖3為本申請實施例中清除后臺進程的步驟流程示意圖;
      圖4為本申請實施例提供的一種緩存回收裝置的結(jié)構(gòu)示意圖。
      【具體實施方式】
      [0013]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進一步地詳細描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
      [0014]以下通過具體的實施例,結(jié)合說明書附圖對本發(fā)明的技術(shù)方案進行詳細描述,本發(fā)明包括但并不限于以下實施例。
      [0015]如圖1所示,本申請實施例提供的一種緩存回收方法包括:
      步驟101:接收進程發(fā)送的申請內(nèi)存的請求信息,其中,所述請求信息攜帶有所述進程所需內(nèi)存空間的大小。
      [0016]以Android系統(tǒng)為例,現(xiàn)有技術(shù)中,基于Android系統(tǒng)的終端應(yīng)用越來越豐富,這些應(yīng)用程序的運行離不開執(zhí)行程序的活動,也就是進程,這些進程由Android操作系統(tǒng)內(nèi)核中的調(diào)度程序來管理,該調(diào)度程序負責維護一個有關(guān)計算機系統(tǒng)中現(xiàn)存進程的記錄(也就是進程池),將新的進程加入到該進程池中,并把已經(jīng)完成的進程移出進程池,這樣,當用戶請求執(zhí)行一個應(yīng)用時,調(diào)度程序就把這個應(yīng)用加到當前進程池加以執(zhí)行。而進程執(zhí)行程序的過程中,會申請一些存儲區(qū)以存放執(zhí)行程序所需要的文件,本步驟中,當用戶執(zhí)行一個應(yīng)用時,調(diào)度程序把用戶請求執(zhí)行的這個應(yīng)用加到當前進程池中,執(zhí)行該應(yīng)用的進程就會向操作系統(tǒng)申請一定的內(nèi)存空間,當操作系統(tǒng)的內(nèi)核接收到進程發(fā)送的申請內(nèi)存的請求信息時,獲取該請求信息中包含的所申請內(nèi)存空間的大小。
      [0017]步驟102:根據(jù)所述進程所需內(nèi)存空間的大小,判斷當前空閑的內(nèi)存空間是否滿足所述進程所需內(nèi)存空間。
      [0018]本步驟中,根據(jù)通過步驟101獲取到的所需內(nèi)存空間的大小,由操作系統(tǒng)的內(nèi)核獲取當前的空閑內(nèi)存空間大小,并將獲取到的當前內(nèi)存空間的大小與獲取到的所需內(nèi)存空間大小進行比較,以判斷當前空閑的內(nèi)存空間是否滿足所需內(nèi)存空間。
      [0019]步驟103:若當前空閑的內(nèi)存空間不滿足所述進程所需內(nèi)存空間,則掃描進程表,并清除所述進程表中的后臺進程。
      [0020]本申請實施例中,如果當前空閑的內(nèi)存空間不能滿足申請內(nèi)存的進程所需的內(nèi)存空間時,采用清除后臺進程的方式釋放一部分內(nèi)存空間。
      [0021]優(yōu)選地,如圖
      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1