本發(fā)明涉及計算機技術領域,尤其涉及一種內存空間回收方法、裝置和電子設備。
背景技術:
目前,終端設備已經(jīng)成為人們日常生活中獲取信息的重要工具。由此,終端設備安裝有直播軟件、新聞軟件和社交軟件等軟件以滿足用戶需求。
然而,終端設備的內存有限,上述各個軟件的內容圖片比較多,占用內存比較大,比如同時打開多個頁面,會出現(xiàn)內存不足的情況。
相關技術中,通過回收之前打開的頁面所占用的內存空間,導致用戶返回之前頁面時需要重新加載,效率比較低?;蛘撸瑑H僅給用戶發(fā)送內存不足的提示消息,造成系統(tǒng)運行效率低。
技術實現(xiàn)要素:
本發(fā)明的目的旨在至少在一定程度上解決相關技術中的技術問題之一。
為此,本發(fā)明的第一個目的在于提出一種內存空間回收方法,該方法能夠使系統(tǒng)一直處于內存充裕狀態(tài),提高加載效率,且提高系統(tǒng)運行速度,提高用戶體驗。
本發(fā)明的第二個目的在于提出一種內存空間回收裝置。
本發(fā)明的第三個目的在于提出一種電子設備。
本發(fā)明的第四個目的在于提出一種非臨時性計算機可讀存儲介質。
本發(fā)明的第五個目的在于提出一種計算機程序產(chǎn)品。
為達上述目的,本發(fā)明第一方面實施例提出了一種內存空間回收方法,包括:將目標資源加載到設備內存,其中,所述目標資源被系統(tǒng)強引用;若檢測到所述目標資源滿足預設的解除條件,則解除所述系統(tǒng)對所述目標資源的強引用;當檢測到所述設備內存滿足預設的回收條件時,對所述設備內存中沒有被所述系統(tǒng)強引用的資源占用的內存空間進行回收。
本發(fā)明實施例的內存空間回收方法,通過將被系統(tǒng)強引用的目標資源加載到設備內存,并在檢測到目標資源滿足預設的解除條件時解除系統(tǒng)對目標資源的強引用,以及在檢測到設備內存滿足預設的回收條件時對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。由此,能夠使系統(tǒng)一直處于內存充裕狀態(tài),提高重新加載效率,且提高系統(tǒng)運行速度,提高用戶體驗。
另外,根據(jù)本發(fā)明上述實施例的內存空間回收方法還可以具有如下附加的技術特征:
可選地,所述將目標資源加載到設備內存,包括:將網(wǎng)頁中的圖片資源加載到設備內存中;和/或,將網(wǎng)頁中的視頻資源加載到設備內存中;和/或,將應用程序中的多媒體資源加載到設備內存中。
可選地,所述檢測到所述目標資源滿足預設的解除條件,包括:檢測到系統(tǒng)對所述目標資源執(zhí)行強引用解除指令;或者,檢測到系統(tǒng)對所述目標資源執(zhí)行弱引用或者軟引用轉換指令;或者,監(jiān)測到系統(tǒng)對所述目標資源所在的網(wǎng)頁執(zhí)行不可見的回調指令;或者,監(jiān)測到系統(tǒng)對所述目標資源本身執(zhí)行不可見的回調指令;或者,監(jiān)測到用戶對所述目標資源所在的網(wǎng)頁調用不可見函數(shù);或者,監(jiān)測到用戶對所述目標資源本身調用不可見函數(shù)。
可選地,在所述若檢測到所述目標資源滿足預設的解除條件之后,還包括:檢測預設時間內是否接收到對所述目標資源的獲取請求;所述解除所述系統(tǒng)對所述目標資源的強引用,包括:若檢測獲知所述預設時間內沒有接收到對所述目標資源的獲取請求,則解除所述系統(tǒng)對所述目標資源的強引用。
可選地,所述解除所述系統(tǒng)對所述目標資源的強引用,包括:解除所述系統(tǒng)對所述目標資源的引用;或者將所述系統(tǒng)對所述目標資源的強引用轉換為弱引用或者軟引用。
可選地,所述檢測到所述設備內存滿足預設的回收條件,包括:檢測到所述設備內存中空閑的內存空間小于預設閾值;或者,檢測到所述設備內存中空閑的內存空間小于待加載的資源所需的內存空間。
可選地,所述設備內存中沒有被所述系統(tǒng)強引用的資源,包括:所述設備內存中被所述系統(tǒng)弱引用或軟引用的資源;和/或,所述設備內存中沒有被系統(tǒng)引用的資源。
可選地,對所述設備內存中沒有被所述系統(tǒng)強引用的資源占用的內存空間進行回收,包括:根據(jù)預設的回收指標對所述設備內存中沒有被所述系統(tǒng)強引用的資源占用的內存空間進行回收;或者,根據(jù)待加載的資源所需的內存空間對所述設備內存中沒有被所述系統(tǒng)強引用的資源占用的內存空間進行回收。
可選地,所述的方法,還包括:獲取從回收的內存空間中所刪除資源的標識信息與路徑信息;記錄所述標識信息與所述路徑信息的對應關系。
可選地,所述的方法,還包括:接收攜帶標識信息的資源獲取請求;檢測與所述標識信息對應的資源是否在所述設備內存中;如果所述資源在所述設備內存中,則直接從所述設備內存中獲取所述資源;如果所述資源不在所述設備內存中,則根據(jù)所述對應關系獲取與所述標識信息對應的路徑信息,進而根據(jù)所述路徑信息獲取所述資源。
為達上述目的,本發(fā)明第二方面實施例提出了一種內存空間回收裝置,包括:加載模塊,用于將目標資源加載到設備內存,其中,所述目標資源被系統(tǒng)強引用;第一檢測模塊,用于檢測所述目標資源是否滿足預設的解除條件;解除模塊,用于在檢測到所述目標資源滿足預設的解除條件時,解除所述系統(tǒng)對所述目標資源的強引用;回收模塊,用于當檢測到所述設備內存滿足預設的回收條件時,對所述設備內存中沒有被所述系統(tǒng)強引用的資源占用的內存空間進行回收。
本發(fā)明實施例的內存空間回收裝置,通過將被系統(tǒng)強引用的目標資源加載到設備內存,并在檢測到目標資源滿足預設的解除條件時解除系統(tǒng)對目標資源的強引用,以及在檢測到設備內存滿足預設的回收條件時對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。由此,能夠使系統(tǒng)一直處于內存充裕狀態(tài),提高加載效率,且提高系統(tǒng)運行速度,提高用戶體驗。
另外,根據(jù)本發(fā)明上述實施例的內存空間回收裝置還可以具有如下附加的技術特征:
可選地,所述加載模塊用于:將網(wǎng)頁中的圖片資源加載到設備內存中;和/或,將網(wǎng)頁中的視頻資源加載到設備內存中;和/或,將應用程序中的多媒體資源加載到設備內存中。
可選地,所述解除模塊具體用于:檢測到系統(tǒng)對所述目標資源執(zhí)行強引用解除指令;或者,檢測到系統(tǒng)對所述目標資源執(zhí)行弱引用或者軟引用轉換指令;或者,監(jiān)測到系統(tǒng)對所述目標資源所在的網(wǎng)頁執(zhí)行不可見的回調指令;或者,監(jiān)測到系統(tǒng)對所述目標資源本身執(zhí)行不可見的回調指令;或者,監(jiān)測到用戶對所述目標資源所在的網(wǎng)頁調用不可見函數(shù);或者,監(jiān)測到用戶對所述目標資源本身調用不可見函數(shù)。
可選地,所述的裝置,還包括:第二檢測模塊,用于在所述第一檢測模塊檢測到所述目標資源滿足預設的解除條件之后,檢測預設時間內是否接收到對所述目標資源的獲取請求;所述解除模塊還用于:在檢測獲知所述預設時間內沒有接收到對所述目標資源的獲取請求時,解除所述系統(tǒng)對所述目標資源的強引用。
可選地,所述解除模塊具體還用于:解除所述系統(tǒng)對所述目標資源的引用;或者,將所述系統(tǒng)對所述目標資源的強引用轉換為弱引用或者軟引用。
可選地,所述回收模塊具體用于:檢測到所述設備內存中空閑的內存空間小于預設閾值;或者,檢測到所述設備內存中空閑的內存空間小于待加載的資源所需的內存空間。
可選地,所述設備內存中沒有被所述系統(tǒng)強引用的資源,包括:所述設備內存中被所述系統(tǒng)弱引用或軟引用的資源;和/或,所述設備內存中沒有被系統(tǒng)引用的資源。
可選地,所述回收模塊具體還用于:根據(jù)預設的回收指標對所述設備內存中沒有被所述系統(tǒng)強引用的資源占用的內存空間進行回收;或者,根據(jù)待加載的資源所需的內存空間對所述設備內存中沒有被所述系統(tǒng)強引用的資源占用的內存空間進行回收。
可選地,所述的裝置,還包括:獲取模塊,用于獲取從回收的內存空間中所刪除資源的標識信息與路徑信息;記錄模塊,用于記錄所述標識信息與所述路徑信息的對應關系。
可選地,所述的裝置,還包括:接收模塊,用于接收攜帶標識信息的資源獲取請求;第三檢測模塊,用于檢測與所述標識信息對應的資源是否在所述設備內存中;處理模塊,用于在所述資源在所述設備內存中時,直接從所述設備內存中獲取所述資源;所述處理模塊,還用于在所述資源不在所述設備內存中時,根據(jù)所述對應關系獲取與所述標識信息對應的路徑信息,進而根據(jù)所述路徑信息獲取所述資源。
為達上述目的,本發(fā)明第三方面實施例提出了一種電子設備,所述電子設備包括:殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內部,處理器和存儲器設置在電路板上;電源電路,用于為上述電子設備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,用于執(zhí)行如下操作:將目標資源加載到設備內存,其中,所述目標資源被系統(tǒng)強引用;若檢測到所述目標資源滿足預設的解除條件,則解除所述系統(tǒng)對所述目標資源的強引用;當檢測到所述設備內存滿足預設的回收條件時,對所述設備內存中沒有被所述系統(tǒng)強引用的資源占用的內存空間進行回收。
本發(fā)明實施例的電子設備,通過將被系統(tǒng)強引用的目標資源加載到設備內存,并在檢測到目標資源滿足預設的解除條件時解除系統(tǒng)對目標資源的強引用,以及在檢測到設備內存滿足預設的回收條件時對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。由此,能夠使系統(tǒng)一直處于內存充裕狀態(tài),提高加載效率,且提高系統(tǒng)運行速度,提高用戶體驗。
為了實現(xiàn)上述目的,本發(fā)明第四方面實施例提出了一種非臨時性計算機可讀存儲介質,當所述存儲介質中的指令由服務器端的處理器被執(zhí)行時,使得服務器端能夠執(zhí)行一種內存空間回收方法,所述方法包括:將目標資源加載到設備內存,其中,所述目標資源被系統(tǒng)強引用;若檢測到所述目標資源滿足預設的解除條件,則解除所述系統(tǒng)對所述目標資源的強引用;當檢測到所述設備內存滿足預設的回收條件時,對所述設備內存中沒有被所述系統(tǒng)強引用的資源占用的內存空間進行回收。
為了實現(xiàn)上述目的,本發(fā)明第五方面實施例提出了一種計算機程序產(chǎn)品,當所述計算機程序產(chǎn)品中的指令處理器執(zhí)行時,執(zhí)行一種內存空間回收方法,所述方法包括:將目標資源加載到設備內存,其中,所述目標資源被系統(tǒng)強引用;若檢測到所述目標資源滿足預設的解除條件,則解除所述系統(tǒng)對所述目標資源的強引用;當檢測到所述設備內存滿足預設的回收條件時,對所述設備內存中沒有被所述系統(tǒng)強引用的資源占用的內存空間進行回收。
本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為本發(fā)明實施例提供的一種內存空間回收方法的流程示意圖;
圖2為本發(fā)明實施例提供的另一種內存空間回收方法的流程示意圖;
圖3為本發(fā)明實施例提供的又一種內存空間回收方法的流程示意圖;
圖4為本發(fā)明實施例提供的一種內存空間回收裝置的結構示意圖;
圖5為本發(fā)明實施例提供的另一種內存空間回收裝置的結構示意圖;
圖6為本發(fā)明實施例提供的又一種內存空間回收裝置的結構示意圖;
圖7為本發(fā)明實施例提供的一種電子設備的結構示意圖。
具體實施方式
下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
下面參考附圖描述本發(fā)明實施例的內存空間回收方法、裝置和電子設備。
通常,終端設備內存有限,隨著用戶使用終端設備的時間增長,安裝的軟件越來越多,并且大多軟件占用內存比較大,導致終端設備內存不足。
為了避免內存不足,導致系統(tǒng)運行速度慢等問題,本發(fā)明提出一種內存空間回收方法,該方法可以使系統(tǒng)一直處于內存充裕狀態(tài)。由此,系統(tǒng)運行速度快,提高用戶體驗。具體如下:
圖1為本發(fā)明實施例提供的一種內存空間回收方法的流程示意圖。
如圖1所示,該內存空間回收方法包括以下步驟:
步驟110,將目標資源加載到設備內存,其中,目標資源被系統(tǒng)強引用。
步驟120,若檢測到目標資源滿足預設的解除條件,則解除系統(tǒng)對目標資源的強引用。
具體地,在進行瀏覽網(wǎng)頁、觀看視頻和編輯圖片等操作時,都需要預先將網(wǎng)頁內容、視頻和圖片等資源作為目標資源加載到設備內存中,才進行后續(xù)操作。
其中,將目標資源加載到設備內存的方式有很多種,可以根據(jù)實際應用選擇。舉例說明如下:
第一種示例,將網(wǎng)頁中的圖片資源加載到設備內存中和將網(wǎng)頁中的視頻資源加載到設備內存中。
第二種示例,將應用程序中的多媒體資源加載到設備內存中。
需要說明的是,本實施例中的目標資源被系統(tǒng)強引用。
可以理解的是,被系統(tǒng)強引用的資源占用的內存空間不能夠被回收。為了將目標資源占用的內存空間進行回收,可以預先設置解除條件,在檢測目標資源滿足預設的解除條件時,解除系統(tǒng)對目標資源的強引用。
具體地,可以通過系統(tǒng)執(zhí)行相關指令(比如解除指令、轉換指令和回調指令)、或者是通過系統(tǒng)調用相關函數(shù)(比如不可見函數(shù))等方式對目標資源進行處理以解除系統(tǒng)對目標資源的強引用。
其中,通過系統(tǒng)執(zhí)行相關指令對目標資源進行處理。舉例說明如下:
第一種示例,檢測到系統(tǒng)對目標資源執(zhí)行強引用解除指令。
第二種示例,檢測到系統(tǒng)對目標資源執(zhí)行弱引用或者軟引用轉換指令。
第三種示例,監(jiān)測到系統(tǒng)對目標資源所在的網(wǎng)頁執(zhí)行不可見的回調指令。
第四種示例,監(jiān)測到系統(tǒng)對目標資源本身執(zhí)行不可見的回調指令。
其中,通過系統(tǒng)調用相關函數(shù)對目標資源進行處理。舉例說明如下:
第一種示例,監(jiān)測到用戶對目標資源所在的網(wǎng)頁調用不可見函數(shù)。
第二種示例,監(jiān)測到用戶對目標資源本身調用不可見函數(shù)。
進一步地,可以通過上述示例中的任一方式獲知目標資源滿足預設的解除條件,解除系統(tǒng)對目標資源的強引用。
可以理解的是,解除系統(tǒng)對目標資源的強引用可以是解除系統(tǒng)對目標資源的引用、或者是將系統(tǒng)對目標資源的強引用轉換為弱引用或者軟引用。
步驟130,當檢測到設備內存滿足預設的回收條件時,對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
可以理解的是,設備內存中沒有被系統(tǒng)強引用的資源,可以是被系統(tǒng)弱引用的資源、或者是被系統(tǒng)軟引用的資源、還是設備內存中沒有被系統(tǒng)引用的資源等占用的內存空間都是可以被回收的。
具體地,預先設置回收條件,在檢測到設備內存滿足預設的回收條件時,將上述資源占用的空間進行回收。
其中,檢測到設備內存滿足預設的回收條件的方式有很多種,可以根據(jù)實際應用需要進行選擇設置。舉例說明如下:
第一種示例,檢測到設備內存中空閑的內存空間小于預設閾值。
第二種示例,檢測到設備內存中空閑的內存空間小于待加載的資源所需的內存空間。
進一步地,可以通過上述示例中的任一方式獲知設備內存滿足預設的回收條件,對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
其中,對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收的方式有很多種,舉例說明如下:
第一種示例,根據(jù)預設的回收指標對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
第二種示例,根據(jù)待加載的資源所需的內存空間對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
綜上所述,本發(fā)明實施例的內存空間回收方法,通過將被系統(tǒng)強引用的目標資源加載到設備內存,并在檢測到目標資源滿足預設的解除條件時解除系統(tǒng)對目標資源的強引用,以及在檢測到設備內存滿足預設的回收條件時對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。由此,能夠使系統(tǒng)一直處于內存充裕狀態(tài),提高加載效率,且提高系統(tǒng)運行速度,提高用戶體驗。
為了清楚說明上一實施例,本實施例以目標資源為圖片資源,在終端設備上打開一系列網(wǎng)頁的場景下,如何對圖片資源占用的內存空間進行回收。具體如下:
圖2為本發(fā)明實施例提供的另一種內存空間回收方法的流程示意圖。
如圖2所示,該內存空間回收方法包括以下步驟:
步驟210,將網(wǎng)頁中的圖片資源加載到設備內存中,其中,圖片資源被系統(tǒng)強引用。
步驟220,監(jiān)測到系統(tǒng)對圖片資源所在的網(wǎng)頁執(zhí)行不可見的回調指令。
具體地,在終端設備上打開一系列網(wǎng)頁,比如依次打開A-B-C-D-E-F六個網(wǎng)頁,需要加載大量圖片資源到設備內存中,導致內存不足。需要對圖片資源占用的內存空間進行回收。
可以理解的是,圖片資源被系統(tǒng)強引用,占用的內存空間不能夠被回收。
為了將圖片資源占用的內存空間進行回收,通過監(jiān)測到系統(tǒng)對圖片資源所在的網(wǎng)頁執(zhí)行不可見的回調指令,比如打開B網(wǎng)頁時,系統(tǒng)對圖片資源所在的網(wǎng)頁A執(zhí)行不可見的回調指令(比如onWindowVisibilityChanged回調指令)。
作為一種實現(xiàn)形式,還可以通過系統(tǒng)對圖片資源本身執(zhí)行不可見的回調指令(比如onVisibilityChanged回調指令),比如在瀏覽B網(wǎng)頁時,下拉的過程中,圖片資源X本身執(zhí)行不可見的回調指令。
作為另一種實現(xiàn)形式,還可以通過系統(tǒng)對目標資源所在的網(wǎng)頁/目標資源本身調用不可見函數(shù)。
步驟230,檢測預設時間內是否接收到對圖片資源的獲取請求。
步驟240,若檢測獲知預設時間內沒有接收到對圖片資源的獲取請求,則解除系統(tǒng)對圖片資源的引用。
進一步地,檢測預設時間(比如5秒內)沒有接收到對圖片資源的獲取請求。
以上述例子為例,可以理解的是在預設時間有沒有接收到對網(wǎng)頁A中的圖片資源的獲取請求。如果沒有,表示沒有再返回網(wǎng)頁A,可以解除系統(tǒng)對網(wǎng)頁A中的目標資源的引用。
可以理解的是,在預設時間接收到對網(wǎng)頁A中的圖片資源的獲取請求,表示用戶重新返回A頁面,這時不可以解除系統(tǒng)對網(wǎng)頁A中的圖片資源的引用,以避免系統(tǒng)對網(wǎng)頁A中的圖片資源占用的內存空間進行回收,用戶需要重新下載網(wǎng)頁A中的圖片資源,效率低以及體驗感不好。
由此,避免了用戶暫時離開也需要重新加載的情況,能夠保證用戶在一定時間內再次返回之前頁面的瀏覽體驗。
步驟250,檢測到設備內存中空閑的內存空間小于預設閾值,根據(jù)預設的回收指標對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
具體地,為了保證系統(tǒng)運行速度,可以設置閾值比如百分之十,當內存空間小于百分之十時,根據(jù)預設的回收指標對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
其中,預設的回收指標可以根據(jù)實際應用需要選擇設置,比如將所有的設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收、或者是將設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間的百分之六十進行回收等等。
可以理解的是,上述回收的過程中,可以不僅僅是解除被系統(tǒng)強引用的圖片資源,還可以是本身就是弱引用、軟引用、或者是沒有被引用的資源等。只要不是被系統(tǒng)強引用的資源都可以回收其占用的內存空間。
綜上所述,本發(fā)明實施例的內存空間回收方法,通過將被系統(tǒng)強引用的圖片資源加載到設備內存,監(jiān)測到系統(tǒng)對圖片資源所在的網(wǎng)頁執(zhí)行不可見的回調指令,再檢測預設時間內是否接收到對圖片資源的獲取請求,在檢測獲知預設時間內沒有接收到對圖片資源的獲取請求時解除系統(tǒng)對目標資源的引用,最后檢測到設備內存中空閑的內存空間小于預設閾值,根據(jù)預設的回收指標對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。由此,能夠使系統(tǒng)一直處于內存充裕狀態(tài),能夠保證用戶在一定時間內再次返回之前頁面的瀏覽體驗,且系統(tǒng)運行速度快,提高用戶體驗。
圖3為本發(fā)明實施例提供的又一種內存空間回收方法的流程示意圖。
如圖3所示,該內存空間回收方法包括以下步驟:
步驟310,將應用程序中的多媒體資源加載到設備內存中,其中,多媒體資源被系統(tǒng)強引用。
步驟320,檢測到系統(tǒng)對多媒體資源執(zhí)行弱引用或者軟引用轉換指令,將系統(tǒng)對多媒體資源的強引用轉換為弱引用或者軟引用。
具體地,終端設備安裝的應用程序,比如微信聊天應用程序,在觀看好友發(fā)送的視頻、圖片等多媒體資源時,需要將多媒體資源加載到設備內存中。
可以理解的是,多媒體資源被系統(tǒng)強引用,占用的內存空間不能夠被回收。
為了將多媒體資源占用的內存空間進行回收,系統(tǒng)對多媒體資源執(zhí)行弱引用或者軟引用轉換指令,將系統(tǒng)對多媒體資源的強引用轉換為弱引用或者軟引用。其中,弱引用或者軟引用的多媒體資源占用的內存空間夠被回收。
作為一種實現(xiàn)形式,還可以通過系統(tǒng)直接對多媒體資源執(zhí)行強引用解除指令,解除系統(tǒng)對多媒體資源的引用。
步驟330,檢測到設備內存中空閑的內存空間小于待加載的多媒體資源所需的內存空間,根據(jù)待加載的多媒體資源所需的內存空間對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
具體地,在需要將多媒體資源加載到設備內存中,發(fā)現(xiàn)設備內存中空閑的內存空間小于待加載的多媒體資源需要的內存空間,可以獲取待加載的多媒體資源需要的內存空間的大小對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。比如,待加載的多媒體資源需要的內存空間為1M,將沒有被系統(tǒng)強引用的資源占用的內存空間進行回收1M。
可以理解的是,上述回收的過程中,可以不僅僅是解除被系統(tǒng)強引用的多媒體資源,還可以是資源本身就是被系統(tǒng)弱引用、軟引用、或者資源本身是沒有被引用等。只要不是被系統(tǒng)強引用的資源都可以回收其占用的內存空間。
步驟340,獲取從回收的內存空間中所刪除資源的標識信息與路徑信息。
步驟350,記錄標識信息與路徑信息的對應關系。
具體地,內存空間中的資源可能部分回收或者全部回收,可以通過獲取回收的內存空間中所刪除資源的標識信息與路徑信息,并記錄標識信息與路徑信息的對應關系,以便用戶重新返回之前頁面或者再次觀看視頻時等情況下能夠節(jié)省加載時間,提升用戶體驗。
其中,資源的標識信息可以是通過對資源進行解析,獲取資源的名稱、創(chuàng)建時間等作為資源的標識信息,還可以是根據(jù)資源的名稱、大小通過預設算法(比如MD5算法)得到資源的標識信息。只要能夠標識資源即可,可以根據(jù)實際應用需要進行選擇。
可以理解的是,各個資源存儲在內存空間中都有其對應的路徑信息,并記錄標識信息與路徑信息的對應關系。由此,通過標識信息能夠查詢到對應的路徑信息。
步驟360,接收攜帶標識信息的資源獲取請求。
步驟370,檢測與標識信息對應的資源是否在設備內存中。
步驟380,如果資源在設備內存中,則直接從設備內存中獲取資源。
步驟390,如果資源不在設備內存中,則根據(jù)對應關系獲取與標識信息對應的路徑信息,進而根據(jù)路徑信息獲取資源。
具體地,在接收到攜帶標識信息的資源獲取請求時,首先根據(jù)標識信息檢測對應的資源是否在設備內存中,如果存在可以直接從設備內存中獲取資源。由此,不需要重新加載就可以獲取資源,提高系統(tǒng)運行速度,提升用戶體驗。
具體地,根據(jù)標識信息檢測對應的資源不在設備內存中,需要根據(jù)標識信息查詢預先記錄的標識信息與路徑信息的對應關系,獲取標識信息對應的路徑信息,進而根據(jù)路徑信息獲取資源。
綜上所述,本發(fā)明實施例的內存空間回收方法,通過獲取從回收的內存空間中所刪除資源的標識信息與路徑信息,并記錄標識信息與路徑信息的對應關系,在接收攜帶標識信息的資源獲取請求時,檢測與標識信息對應的資源是否在設備內存中時從資源在設備內存中直接從設備內存中獲取資源、或者是在資源不在設備內存中時根據(jù)對應關系獲取與標識信息對應的路徑信息,進而根據(jù)路徑信息獲取資源。由此,能夠在資源在設備內存中時,直接獲取資源,節(jié)省加載時間,資源不在設備內存中時,能夠根據(jù)路徑信息快速獲取資源,進一步提高系統(tǒng)運行速度,提高重新加載效率,提高用戶體驗。
為了實現(xiàn)上述實施例,本發(fā)明還提出一種內存空間回收裝置。
圖4為本發(fā)明實施例提供的一種內存空間回收裝置的結構示意圖。
如圖4所示,該內存空間回收裝置包括:加載模塊41、第一檢測模塊42、解除模塊43和回收模塊44。
其中,加載模塊41用于將目標資源加載到設備內存,其中,目標資源被系統(tǒng)強引用。
第一檢測模塊42用于檢測目標資源是否滿足預設的解除條件。
解除模塊43用于在檢測到目標資源滿足預設的解除條件時,解除系統(tǒng)對目標資源的強引用。
回收模塊44用于當檢測到設備內存滿足預設的回收條件時,對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,加載模塊41用于將網(wǎng)頁中的圖片資源加載到設備內存中和將網(wǎng)頁中的視頻資源加載到設備內存中。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,加載模塊41用于將應用程序中的多媒體資源加載到設備內存中。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,解除模塊43具體用于檢測到系統(tǒng)對所述目標資源執(zhí)行強引用解除指令。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,解除模塊43具體用于檢測到系統(tǒng)對目標資源執(zhí)行弱引用或者軟引用轉換指令。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,解除模塊43具體用于監(jiān)測到系統(tǒng)對目標資源所在的網(wǎng)頁執(zhí)行不可見的回調指令。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,解除模塊43具體用于監(jiān)測到系統(tǒng)對目標資源本身執(zhí)行不可見的回調指令。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,解除模塊43具體用于監(jiān)測到用戶對目標資源所在的網(wǎng)頁調用不可見函數(shù)。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,解除模塊43具體用于監(jiān)測到用戶對目標資源本身調用不可見函數(shù)。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,解除模塊43具體還用于解除系統(tǒng)對目標資源的引用。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,解除模塊43具體還用于將系統(tǒng)對目標資源的強引用轉換為弱引用或者軟引用。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,回收模塊44具體用于檢測到設備內存中空閑的內存空間小于預設閾值。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,回收模塊44具體用于檢測到設備內存中空閑的內存空間小于待加載的資源所需的內存空間。
可以理解的是,設備內存中沒有被系統(tǒng)強引用的資源,包括:設備內存中被系統(tǒng)弱引用或軟引用的資源;和/或,設備內存中沒有被系統(tǒng)引用的資源。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,回收模塊44具體還用于根據(jù)預設的回收指標對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
其中,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,回收模塊44具體還用于根據(jù)待加載的資源所需的內存空間對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
需要說明的是,前述對內存空間回收方法實施例的解釋說明也適用于本實施例的內存空間回收裝置,此處不再贅述。
綜上所述,本發(fā)明實施例的內存空間回收裝置,通過將被系統(tǒng)強引用的目標資源加載到設備內存,并在檢測到目標資源滿足預設的解除條件時解除系統(tǒng)對目標資源的強引用,以及在檢測到設備內存滿足預設的回收條件時對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。由此,能夠使系統(tǒng)一直處于內存充裕狀態(tài),提高重新加載效率,且系統(tǒng)運行速度快,提高用戶體驗。
為了清楚說明上一實施例,本實施例提供了另一種內存空間回收裝置。
圖5為本實施例提供的另一種內存空間回收裝置的結構示意圖。
如圖5所示,在圖4的基礎上,該裝置還包括:第二檢測模塊45。
其中,第二檢測模塊45用于在第一檢測模塊42檢測到目標資源滿足預設的解除條件之后,檢測預設時間內是否接收到對目標資源的獲取請求。
解除模塊43還用于在檢測獲知預設時間內沒有接收到對目標資源的獲取請求時,解除系統(tǒng)對目標資源的強引用。
需要說明的是,前述對內存空間回收方法實施例的解釋說明也適用于本實施例的內存空間回收裝置,此處不再贅述。
綜上所述,本發(fā)明實施例的內存空間回收裝置,通過將被系統(tǒng)強引用的目標資源加載到設備內存,檢測到目標資源滿足預設的解除條件之后,檢測預設時間內是否接收到對目標資源的獲取請求,并在檢測獲知預設時間內沒有接收到對目標資源的獲取請求時,解除系統(tǒng)對目標資源的強引用,以及在檢測到設備內存滿足預設的回收條件時對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。由此,能夠使系統(tǒng)一直處于內存充裕狀態(tài),能夠保證用戶在一定時間內再次返回之前頁面的瀏覽體驗,且系統(tǒng)運行速度快,提高用戶體驗。
為了清楚說明上一實施例,本實施例提供了又一種內存空間回收裝置。
圖6為本實施例提供的又一種內存空間回收裝置的結構示意圖。
如圖6所示,在圖4的基礎上,該裝置還包括:獲取模塊46、記錄模塊47、接收模塊48、第三檢測模塊49、處理模塊410。
其中,獲取模塊46用于獲取從回收的內存空間中所刪除資源的標識信息與路徑信息。
記錄模塊47用于記錄標識信息與路徑信息的對應關系。
接收模塊48用于接收攜帶標識信息的資源獲取請求。
第三檢測模塊49用于檢測與標識信息對應的資源是否在設備內存中。
處理模塊410用于在資源在設備內存中時,直接從設備內存中獲取資源。
處理模塊410還用于在資源不在所述設備內存中時,根據(jù)對應關系獲取與標識信息對應的路徑信息,進而根據(jù)路徑信息獲取資源。
需要說明的是,前述對內存空間回收方法實施例的解釋說明也適用于本實施例的內存空間回收裝置,此處不再贅述。
綜上所述,本發(fā)明實施例的內存空間回收裝置,通過獲取從回收的內存空間中所刪除資源的標識信息與路徑信息,并記錄標識信息與路徑信息的對應關系,在接收攜帶標識信息的資源獲取請求時,檢測與標識信息對應的資源是否在設備內存中時從資源在設備內存中直接從設備內存中獲取資源、或者是在資源不在設備內存中時根據(jù)對應關系獲取與標識信息對應的路徑信息,進而根據(jù)路徑信息獲取資源。由此,能夠在資源在設備內存中時,直接獲取資源,節(jié)省加載時間,資源不在設備內存中時,能夠根據(jù)路徑信息快速獲取資源,進一步提高系統(tǒng)運行速度,提高重新加載效率,提高用戶體驗。
為了實現(xiàn)上述實施例,本發(fā)明還提出一種電子設備。
圖7為本申請實施例提供的一種電子設備的結構示意圖。
如圖7所示,該電子設備包括:殼體71、處理器72、存儲器73、電路板74和電源電路75,其中,電路板74安置在殼體圍成的空間內部,處理器72和存儲器73設置在電路板74上;電源電路75,用于為上述電子設備的各個電路或器件供電;存儲器73用于存儲可執(zhí)行程序代碼;處理器72通過讀取存儲器73中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,用于執(zhí)行如下操作:
將目標資源加載到設備內存,其中,目標資源被系統(tǒng)強引用;若檢測到目標資源滿足預設的解除條件,則解除系統(tǒng)對目標資源的強引用;當檢測到設備內存滿足預設的回收條件時,對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
需要說明的是,前述對內存空間回收方法實施例的解釋說明也適用于本實施例的電子設備,此處不再贅述。
本發(fā)明實施例的電子設備,通過將被系統(tǒng)強引用的目標資源加載到設備內存,并在檢測到目標資源滿足預設的解除條件時解除系統(tǒng)對目標資源的強引用,以及在檢測到設備內存滿足預設的回收條件時對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。由此,能夠使系統(tǒng)一直處于內存充裕狀態(tài),提高加載效率,且提高系統(tǒng)運行速度,提高用戶體驗。
為了實現(xiàn)上述實施例,本發(fā)明還提出一種非臨時性計算機可讀存儲介質,當所述存儲介質中的指令由服務器端的處理器被執(zhí)行時,使得服務器端能夠執(zhí)行一種內存空間回收方法,所述方法包括:
將目標資源加載到設備內存,其中,目標資源被系統(tǒng)強引用;若檢測到目標資源滿足預設的解除條件,則解除系統(tǒng)對目標資源的強引用;當檢測到設備內存滿足預設的回收條件時,對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
為了實現(xiàn)上述實施例,本發(fā)明還提出一種計算機程序產(chǎn)品,當所述計算機程序產(chǎn)品中的指令處理器執(zhí)行時,執(zhí)行一種內存空間回收方法,所述方法包括:
將目標資源加載到設備內存,其中,目標資源被系統(tǒng)強引用;若檢測到目標資源滿足預設的解除條件,則解除系統(tǒng)對目標資源的強引用;當檢測到設備內存滿足預設的回收條件時,對設備內存中沒有被系統(tǒng)強引用的資源占用的內存空間進行回收。
在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。
此外,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個該特征。在本發(fā)明的描述中,“多個”的含義是至少兩個,例如兩個,三個等,除非另有明確具體的限定。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)定制邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應被本發(fā)明的實施例所屬技術領域的技術人員所理解。
在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認為是用于實現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實現(xiàn)在任何計算機可讀介質中,以供指令執(zhí)行系統(tǒng)、裝置或設備(如基于計算機的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設備取指令并執(zhí)行指令的系統(tǒng))使用,或結合這些指令執(zhí)行系統(tǒng)、裝置或設備而使用。就本說明書而言,"計算機可讀介質"可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設備或結合這些指令執(zhí)行系統(tǒng)、裝置或設備而使用的裝置。計算機可讀介質的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀存儲器(ROM),可擦除可編輯只讀存儲器(EPROM或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(CDROM)。另外,計算機可讀介質甚至可以是可在其上打印所述程序的紙或其他合適的介質,因為可以例如通過對紙或其他介質進行光學掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。
應當理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。如,如果用硬件來實現(xiàn)和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
本技術領域的普通技術人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
此外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。
上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領域的普通技術人員在本發(fā)明的范圍內可以對上述實施例進行變化、修改、替換和變型。