本發(fā)明涉及內(nèi)存優(yōu)化技術(shù)領(lǐng)域,具體涉及一種內(nèi)存優(yōu)化方法、裝置及用戶設(shè)備。
背景技術(shù):
內(nèi)存為用戶設(shè)備(如手機(jī)、平板電腦、筆記本電腦等)中運(yùn)行程序的裝置;用戶設(shè)備所裝載的應(yīng)用在運(yùn)行時,將占用一定的內(nèi)存資源,因此對應(yīng)用所占用的內(nèi)存進(jìn)行優(yōu)化管理,對于用戶設(shè)備的性能影響非常大。
目前對用戶設(shè)備所裝載的應(yīng)用進(jìn)行內(nèi)存優(yōu)化的方式主要為,采用對用戶設(shè)備所裝載的各應(yīng)用具有支配權(quán)限的管家應(yīng)用,監(jiān)控各應(yīng)用所占用的內(nèi)存占用值,若存在內(nèi)存占用值大于閾值的應(yīng)用,則管家應(yīng)用直接殺死該應(yīng)用,釋放該應(yīng)用所占用的內(nèi)存,實(shí)現(xiàn)內(nèi)存的優(yōu)化管理。
本發(fā)明的發(fā)明人研究發(fā)現(xiàn),現(xiàn)有的內(nèi)存優(yōu)化方式主要是針對應(yīng)用整體進(jìn)行內(nèi)存優(yōu)化,且是簡單的殺死高占用內(nèi)存的應(yīng)用,并無法對單個應(yīng)用進(jìn)行具體的內(nèi)存優(yōu)化;因此提供一種內(nèi)存優(yōu)化方法,以對單個應(yīng)用進(jìn)行具體的內(nèi)存優(yōu)化,成為本領(lǐng)域技術(shù)人員需要考慮的問題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例提供一種內(nèi)存優(yōu)化方法、裝置及用戶設(shè)備,以對單個應(yīng)用進(jìn)行具體的內(nèi)存優(yōu)化。
為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供如下技術(shù)方案:
一種內(nèi)存優(yōu)化方法,包括:
檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值,所述目標(biāo)應(yīng)用具有多個占用內(nèi)存的內(nèi)存占用對象;
確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級;
根據(jù)設(shè)定的內(nèi)存占用等級與內(nèi)存釋放手段的對應(yīng)關(guān)系,以所述內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段,釋放所述目標(biāo)應(yīng)用的內(nèi)存占用對象。
本發(fā)明實(shí)施例還提供一種內(nèi)存優(yōu)化裝置,包括:
檢測模塊,用于檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值,所述目標(biāo)應(yīng)用具有多個占用內(nèi)存的內(nèi)存占用對象;
等級確定模塊,用于確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級;
釋放模塊,用于根據(jù)設(shè)定的內(nèi)存占用等級與內(nèi)存釋放手段的對應(yīng)關(guān)系,以所述內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段,釋放所述目標(biāo)應(yīng)用的內(nèi)存占用對象。
本發(fā)明實(shí)施例還提供一種用戶設(shè)備,包括上述所述的內(nèi)存優(yōu)化裝置。
基于上述技術(shù)方案,本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法,包括:檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值,所述目標(biāo)應(yīng)用具有多個占用內(nèi)存的內(nèi)存占用對象;確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級;根據(jù)設(shè)定的內(nèi)存占用等級與內(nèi)存釋放手段的對應(yīng)關(guān)系,以所述內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段,釋放所述目標(biāo)應(yīng)用的內(nèi)存占用對象。本發(fā)明實(shí)施例通過確定目標(biāo)應(yīng)用當(dāng)前的內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級,采用所確定的內(nèi)存占用等級對應(yīng)的內(nèi)存釋放手段對目標(biāo)應(yīng)用的內(nèi)存占用對象進(jìn)行釋放,而不是在目標(biāo)應(yīng)用的內(nèi)存占用值較大時,直接殺死目標(biāo)應(yīng)用,實(shí)現(xiàn)了對目標(biāo)應(yīng)用具體的占用內(nèi)存的對象的釋放,使得目標(biāo)應(yīng)用所占用的內(nèi)存降低,提升了目標(biāo)應(yīng)用的運(yùn)行穩(wěn)定性。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法的另一流程圖;
圖3為本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法的再一流程圖;
圖4為本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法的又一流程圖;
圖5為本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法的又另一流程圖;
圖6為本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化裝置的結(jié)構(gòu)框圖;
圖7為本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化裝置的另一結(jié)構(gòu)框圖;
圖8為本發(fā)明實(shí)施例提供的趨勢確定模塊的結(jié)構(gòu)框圖;
圖9為本發(fā)明實(shí)施例提供的釋放模塊的結(jié)構(gòu)框圖;
圖10為本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化裝置的再一結(jié)構(gòu)框圖;
圖11為本發(fā)明實(shí)施例提供的第一釋放單元的結(jié)構(gòu)框圖;
圖12為本發(fā)明實(shí)施例提供的用戶設(shè)備的硬件結(jié)構(gòu)框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法的流程圖,該內(nèi)存優(yōu)化方法可應(yīng)用于用戶設(shè)備,可對用戶設(shè)備所裝載的某一目標(biāo)應(yīng)用進(jìn)行具體的內(nèi)存優(yōu)化;參照圖1,該內(nèi)存優(yōu)化方法可以包括:
步驟S100、檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值,所述目標(biāo)應(yīng)用具有多個占用內(nèi)存的內(nèi)存占用對象;
目標(biāo)應(yīng)用為用戶設(shè)備所裝載的某一應(yīng)用,可以為用戶設(shè)備中任一需要進(jìn)行內(nèi)存優(yōu)化的應(yīng)用;本發(fā)明實(shí)施例可定時檢測一次目標(biāo)應(yīng)用所占用的內(nèi)存占用值,如每隔0.5秒檢測一次目標(biāo)應(yīng)用所占用的內(nèi)存占用值,具體定時時間可視實(shí)際情況設(shè)定;
可選的,內(nèi)存占用對象為目標(biāo)應(yīng)用中占用內(nèi)存的對象,目標(biāo)應(yīng)用可通過這些內(nèi)存占用對象實(shí)現(xiàn)運(yùn)行和功能展現(xiàn);以目標(biāo)應(yīng)用為瀏覽器為例,則內(nèi)存占用對象可以瀏覽器打開的瀏覽器頁面,加載的插件等,以目標(biāo)應(yīng)用為即時通訊應(yīng)用為例,則內(nèi)存占用對象可以為即時通訊應(yīng)用打開的聊天窗口(可以為視頻、語音窗口等),加載的插件等。
步驟S110、確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級;
可選的,本發(fā)明實(shí)施例可設(shè)置多個內(nèi)存占用等級,一個內(nèi)存占用等級對應(yīng)一個內(nèi)存占用值范圍,若目標(biāo)應(yīng)用當(dāng)前的內(nèi)存占用值處于某一內(nèi)存占用等級所對應(yīng)的內(nèi)存占用值范圍內(nèi),則可確定目標(biāo)應(yīng)用當(dāng)前的內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級,與所處于的內(nèi)存占用值范圍對應(yīng)的內(nèi)存占用等級相應(yīng);
如本發(fā)明實(shí)施例可設(shè)置兩個內(nèi)存占用等級,分為第一內(nèi)存占用等級和第二內(nèi)存占用等級,第一內(nèi)存占用等級的內(nèi)存占用程度高于第二內(nèi)存占用等級;第二內(nèi)存占用等級的內(nèi)存占用值范圍可以為A~B,第一內(nèi)存占用等級的內(nèi)存占用值范圍可以為大于B;
若目標(biāo)應(yīng)用當(dāng)前的內(nèi)存占用值處于A~B范圍內(nèi),則可確定對應(yīng)的內(nèi)存占用等級為第二內(nèi)存占用等級;若目標(biāo)應(yīng)用當(dāng)前的內(nèi)存占用值大于B,則可確定對應(yīng)的內(nèi)存占用等級為第一內(nèi)存占用等級;顯然,本發(fā)明實(shí)施例也可設(shè)置大于兩個的內(nèi)存占用等級,此種情況下,確定目標(biāo)應(yīng)用當(dāng)前的內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級的原理與上述類似。
步驟S120、根據(jù)設(shè)定的內(nèi)存占用等級與內(nèi)存釋放手段的對應(yīng)關(guān)系,以所述內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段,釋放所述目標(biāo)應(yīng)用的內(nèi)存占用對象。
可選的,本發(fā)明實(shí)施例提供的內(nèi)存釋放手段并不是直接殺死目標(biāo)應(yīng)用,而是在目標(biāo)應(yīng)用保持運(yùn)行狀態(tài)的前提下,對目標(biāo)應(yīng)用的內(nèi)存占用對象進(jìn)行釋放,作到了對目標(biāo)應(yīng)用具體的占用內(nèi)存的對象的釋放,使得目標(biāo)應(yīng)用所占用的內(nèi)存降低,提升目標(biāo)應(yīng)用的運(yùn)行穩(wěn)定性;
可選的,本發(fā)明實(shí)施可設(shè)定各內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段,從而根據(jù)目標(biāo)應(yīng)用當(dāng)前的內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級,采用對應(yīng)的內(nèi)存釋放手段對目標(biāo)應(yīng)用的內(nèi)存占用對象進(jìn)行釋放;
可選的,各內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段可自定義設(shè)定,可設(shè)置各內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段均各不相同,也可設(shè)置部分內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段相同。
本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法,包括:檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值,所述目標(biāo)應(yīng)用具有多個占用內(nèi)存的內(nèi)存占用對象;確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級;根據(jù)設(shè)定的內(nèi)存占用等級與內(nèi)存釋放手段的對應(yīng)關(guān)系,以所述內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段,釋放所述目標(biāo)應(yīng)用的內(nèi)存占用對象。本發(fā)明實(shí)施例通過確定目標(biāo)應(yīng)用當(dāng)前的內(nèi)存占用值所對應(yīng)的 內(nèi)存占用等級,采用所確定的內(nèi)存占用等級對應(yīng)的內(nèi)存釋放手段對目標(biāo)應(yīng)用的內(nèi)存占用對象進(jìn)行釋放,而不是在目標(biāo)應(yīng)用的內(nèi)存占用值較大時,直接殺死目標(biāo)應(yīng)用,實(shí)現(xiàn)了對目標(biāo)應(yīng)用具體的占用內(nèi)存的對象的釋放,使得目標(biāo)應(yīng)用所占用的內(nèi)存降低,提升了目標(biāo)應(yīng)用的運(yùn)行穩(wěn)定性。
可選的,若目標(biāo)應(yīng)用當(dāng)前的內(nèi)存占用值不處于任一內(nèi)存占用等級所對應(yīng)的內(nèi)存占用值范圍內(nèi),則可確定目標(biāo)應(yīng)用當(dāng)前的內(nèi)存占用情況降低,可不需進(jìn)行內(nèi)存優(yōu)化。
可選的,在衡量是否釋放目標(biāo)應(yīng)用的內(nèi)存占用對象時,本發(fā)明實(shí)施例可加入目標(biāo)應(yīng)用的內(nèi)存占用趨勢的考慮因素;在檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值后,可判斷目標(biāo)應(yīng)用的內(nèi)存占用趨勢是否處于上升趨勢,在確定目標(biāo)應(yīng)用的內(nèi)存占用趨勢處于上升趨勢時,可確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級,進(jìn)而根據(jù)設(shè)定的內(nèi)存占用等級與內(nèi)存釋放手段的對應(yīng)關(guān)系,以所述內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段,釋放所述目標(biāo)應(yīng)用的內(nèi)存占用對象;若在檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值后,確定目標(biāo)應(yīng)用的內(nèi)存占用趨勢處于非上升趨勢,則說明目標(biāo)應(yīng)用占用的內(nèi)存將繼續(xù)降低,可暫時不對目標(biāo)應(yīng)用的內(nèi)存占用對象作釋放處理,不進(jìn)行后續(xù)處理。
圖2示出了本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法的另一流程圖,參照圖2,該方法可以包括:
步驟S200、檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值,所述目標(biāo)應(yīng)用具有多個占用內(nèi)存的內(nèi)存占用對象;
步驟S210、收集設(shè)定時間區(qū)間內(nèi)所述目標(biāo)應(yīng)用所占用的內(nèi)存占用值集合,所述內(nèi)存占用值集合具有多個內(nèi)存占用值;
本發(fā)明實(shí)施例可定時檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值,通過一段設(shè)定時間區(qū)間后,可實(shí)現(xiàn)多次內(nèi)存占用值的檢測,得到多個內(nèi)存占用值,進(jìn)而由該多個內(nèi)存占用值組成內(nèi)存占用值集合;
步驟S220、根據(jù)所述內(nèi)存占用值集合判斷內(nèi)存占用趨勢是否處于上升趨勢,若否,執(zhí)行步驟S230,若是,執(zhí)行步驟S240;
步驟S230、確定內(nèi)存占用趨勢處于非上升趨勢,結(jié)束流程;
可選的,非上升趨勢可以為下降趨勢,或穩(wěn)定趨勢。
步驟S240、確定內(nèi)存占用趨勢處于上升趨勢,確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級;
步驟S250、根據(jù)設(shè)定的內(nèi)存占用等級與內(nèi)存釋放手段的對應(yīng)關(guān)系,以所述內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段,釋放所述目標(biāo)應(yīng)用的內(nèi)存占用對象。
可選的,本發(fā)明實(shí)施例可確定內(nèi)存占用值集合所對應(yīng)的內(nèi)存占用值趨勢的導(dǎo)線方向,從而通過導(dǎo)線方向判斷內(nèi)存占用趨勢是否處于上升趨勢,如果導(dǎo)線方向與上升方向?qū)?yīng),則可確定內(nèi)存占用趨勢處于上升趨勢,如果導(dǎo)線方向不與上升方向?qū)?yīng),則可確定內(nèi)存占用趨勢處于非上升趨勢;顯然,確定一個數(shù)值集合的數(shù)值是處于上升趨勢還是處于非上升趨勢的方式有多種,并不限于通過導(dǎo)線方向的方式來確定,還可采用其他方式進(jìn)行。
可選的,為避免檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值的進(jìn)程卡死,本發(fā)明實(shí)施例可在目標(biāo)應(yīng)用內(nèi)設(shè)置檢測內(nèi)存占用值的內(nèi)存檢測進(jìn)程,并通過該內(nèi)存檢測進(jìn)程采用異步方式檢測所述目標(biāo)應(yīng)用所占用的內(nèi)存占用值;即本發(fā)明實(shí)施例可使用設(shè)置于所述目標(biāo)應(yīng)用內(nèi)的內(nèi)存檢測進(jìn)程,以定時異步的方式檢測所述目標(biāo)應(yīng)用所占用的內(nèi)存占用值。
可選的,本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法可應(yīng)用于瀏覽器的內(nèi)存優(yōu)化;對應(yīng)的,目標(biāo)應(yīng)用可以為瀏覽器,目標(biāo)應(yīng)用的內(nèi)存占用對象可以為瀏覽器的頁面。圖3示出了本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法的再一流程圖,參照圖3,該方法可以包括:
步驟S300、檢測瀏覽器所占用的內(nèi)存占用值,所述瀏覽器運(yùn)行有多個占用內(nèi)存的瀏覽器頁面;
步驟S310、確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級;
步驟S320、根據(jù)設(shè)定的內(nèi)存占用等級與內(nèi)存釋放手段的對應(yīng)關(guān)系,以所述內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段釋放所述瀏覽器的頁面。
可選的,釋放所述瀏覽器的頁面可以是關(guān)閉頁面;也可以是對頁面中的顯示內(nèi)容進(jìn)行釋放,如釋放頁面中的圖片、視頻、文字等。
可選的,圖3所示方法也可加入內(nèi)存占用趨勢的判斷因素,即在瀏覽器的內(nèi)存占用趨勢處于上升趨勢時,進(jìn)行內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級的確定及后續(xù)處理,在瀏覽器的內(nèi)存占用趨勢處于非上升趨勢時,則可結(jié)束流程,不進(jìn)行后續(xù)處理。
可選的,本發(fā)明實(shí)施例可設(shè)置第一內(nèi)存占用等級至第N內(nèi)存占用等級,N為大于1的整數(shù),各內(nèi)存占用等級均對應(yīng)有釋放瀏覽器頁面的內(nèi)存釋放手段;圖4示出了內(nèi)存占用等級對應(yīng)的內(nèi)存釋放手段的具體形式,圖4所示僅為可選方式,對于各內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段,本發(fā)明實(shí)施例可自定義設(shè)定。
圖4為本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法的又一流程圖,參照圖4,該方法可以包括:
步驟S400、檢測瀏覽器所占用的內(nèi)存占用值,所述瀏覽器運(yùn)行有多個占用內(nèi)存的瀏覽器頁面;
步驟S410、確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級,瀏覽器的內(nèi)存占用等級包括第一內(nèi)存占用等級至第N內(nèi)存占用等級;
可選的,本發(fā)明實(shí)施例可設(shè)置各內(nèi)存占用等級對應(yīng)有各自的內(nèi)存占用值范圍,通過確定瀏覽器當(dāng)前的內(nèi)存占用值所處于的內(nèi)存占用值范圍,可將瀏覽器當(dāng)前的內(nèi)存占用值所處于的內(nèi)存占用值范圍對應(yīng)的內(nèi)存占用等級,確定為所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級;
步驟S420、若所述內(nèi)存占用等級為第一內(nèi)存占用等級,確定符合設(shè)定的釋放條件的瀏覽器頁面,釋放所述符合設(shè)定的釋放條件的瀏覽器頁面;
可選的,第一內(nèi)存占用等級的內(nèi)存占用程度最高,可采取釋放頁面(關(guān)閉頁面)的形式進(jìn)行內(nèi)存釋放,所選取的進(jìn)行釋放的瀏覽器頁面可以為符合設(shè)定的釋放條件的瀏覽器頁面;符合設(shè)定的釋放條件的瀏覽器頁面可自定義設(shè)定;
可選的,本發(fā)明實(shí)施例可設(shè)置頁面白名單,通過頁面白名單記錄不需進(jìn)行釋放的瀏覽器頁面,可將不處于頁面白名單中的頁面確定為符合設(shè)定的釋放條件的瀏覽器頁面;可選的,頁面白名單中的頁面可自定義設(shè)定;
可選的,本發(fā)明實(shí)施例也可設(shè)定不釋放內(nèi)存的頁面類型,可將瀏覽器打開的頁面中頁面類型與設(shè)定不釋放內(nèi)存的頁面類型不符的頁面,確定為符合設(shè)定的釋放條件的瀏覽器頁面;不釋放內(nèi)存的頁面類型可以為歌曲播放頁面,游戲頁面等,具體不釋放內(nèi)存的頁面類型可自定義設(shè)定;
可選的,本發(fā)明實(shí)施例也可將運(yùn)行時間最久的頁面確定為符合設(shè)定的釋放條件的瀏覽器頁面。
步驟S430、若所述內(nèi)存占用等級為第i內(nèi)存占用等級,則根據(jù)第i內(nèi)存占用等級所對應(yīng)的釋放內(nèi)存的頁面內(nèi)容類型,釋放瀏覽器頁面中與所述頁面內(nèi)容類型相應(yīng)的內(nèi)容,其中,1<i≤N,i為整數(shù)。
第i內(nèi)存占用等級為非第一內(nèi)存占用等級的內(nèi)存占用等級,瀏覽器當(dāng)前的的內(nèi)存占用值對應(yīng)第i內(nèi)存占用等級時,本發(fā)明實(shí)施例可不釋放頁面,而是對頁面中的內(nèi)容(如圖片、文本、視頻等)進(jìn)行釋放;具體的,對于各非第一內(nèi)存占用等級,本發(fā)明實(shí)施例可設(shè)置瀏覽器頁面中釋放內(nèi)存的頁面內(nèi)容類型,從而根據(jù)第i內(nèi)存占用等級所對應(yīng)的釋放內(nèi)存的頁面內(nèi)容類型,釋放瀏覽器頁面中與所述頁面內(nèi)容類型相應(yīng)的內(nèi)容。
可選的,除了檢測瀏覽器自身占用的內(nèi)存占用值外,瀏覽器還可接收系統(tǒng)發(fā)出的內(nèi)存警告,若接收到系統(tǒng)發(fā)出的內(nèi)存警告的次數(shù)大于設(shè)定次數(shù)(如兩次等,具體數(shù)值可視實(shí)際情況設(shè)定),則可依照第一內(nèi)存占用等級的處理機(jī)制,確定符合設(shè)定的釋放條件的瀏覽器頁面,釋放所述符合設(shè)定的釋放條件的瀏覽器頁面;顯然,對于系統(tǒng)發(fā)出的內(nèi)存警告的次數(shù)大于設(shè)定次數(shù)的內(nèi)存釋放手段,也可自定義設(shè)定。
可選的,由于瀏覽器運(yùn)行的頁面數(shù)量過少,將影響用戶體驗(yàn);因此本發(fā)明實(shí)施例在使用釋放瀏覽器頁面的內(nèi)存釋放機(jī)制時,可加入頁面數(shù)量的最小運(yùn)行限值;具體的,可在瀏覽器當(dāng)前的內(nèi)存使用值對應(yīng)第一內(nèi)存占用等級時(也可以為當(dāng)前的內(nèi)存使用值對應(yīng)的非第一內(nèi)存占用等級,對應(yīng)采用釋放瀏覽器頁面的內(nèi)存釋放手段的情況),判斷瀏覽器當(dāng)前運(yùn)行的頁面數(shù)量是否小于最小運(yùn)行限值,只有在瀏覽器當(dāng)前運(yùn)行的頁面數(shù)量不小于最小運(yùn)行限值時,才釋放符合設(shè)定的釋放條件的瀏覽器頁面,在瀏覽器當(dāng)前運(yùn)行的頁面數(shù)量小于最小運(yùn)行限值時,則不釋放符合設(shè)定的釋放條件的瀏覽器頁面。
圖5示出了本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法的又另一流程圖,參照圖5,該方法可以包括:
步驟S500、檢測瀏覽器所占用的內(nèi)存占用值,瀏覽器運(yùn)行有多個占用內(nèi)存的頁面;
步驟S510、收集設(shè)定時間區(qū)間內(nèi)所述瀏覽器所占用的內(nèi)存占用值集合,所述內(nèi)存占用值集合具有多個內(nèi)存占用值;
步驟S520、根據(jù)所述內(nèi)存占用值集合判斷內(nèi)存占用趨勢是否處于上升趨勢,若否,執(zhí)行步驟S530,若是,執(zhí)行步驟S540;
步驟S530、確定內(nèi)存占用趨勢處于非上升趨勢,結(jié)束流程;
步驟S540、確定內(nèi)存占用趨勢處于上升趨勢,確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級,瀏覽器的內(nèi)存占用等級包括第一內(nèi)存占用等級至第N內(nèi)存占用等級;
步驟S550、若所述內(nèi)存占用等級為第一內(nèi)存占用等級,判斷瀏覽器當(dāng)前運(yùn)行的頁面數(shù)量是否小于最小運(yùn)行限值,若否,執(zhí)行步驟S560,若是,執(zhí)行步驟S570;
步驟S560、確定符合設(shè)定的釋放條件的瀏覽器頁面,釋放所述符合設(shè)定的釋放條件的瀏覽器頁面;
步驟S570、結(jié)束流程;
步驟S580、若所述內(nèi)存占用等級為第i內(nèi)存占用等級,則根據(jù)第i內(nèi)存占用等級所對應(yīng)的釋放內(nèi)存的頁面內(nèi)容類型,釋放瀏覽器頁面中與所述頁面內(nèi)容類型相應(yīng)的內(nèi)容,其中,1<i≤N,i為整數(shù)。
可選的,若瀏覽器接收到系統(tǒng)發(fā)出的內(nèi)存警告的次數(shù)大于設(shè)定次數(shù),則也可確定符合設(shè)定的釋放條件的瀏覽器頁面,釋放所述符合設(shè)定的釋放條件的瀏覽器頁面。
下面對本發(fā)明實(shí)施例提供的對瀏覽器進(jìn)行內(nèi)存優(yōu)化的一個應(yīng)用例進(jìn)行說明:
設(shè)置第一級內(nèi)存占用等級和第二級內(nèi)存占用等級,第一級內(nèi)存占用等級的內(nèi)存占用范圍為大于30%的內(nèi)存占用比,第二級內(nèi)存占用等級的內(nèi)存占用范圍為20%~30%的內(nèi)存占用比;
定時0.5秒使用內(nèi)存檢測進(jìn)程異步檢測一次瀏覽器的內(nèi)存占用值;
當(dāng)內(nèi)存占用值小于20%(如10%)的內(nèi)存占用比時,不進(jìn)行內(nèi)存優(yōu)化;
當(dāng)內(nèi)存占用值介于20%~30%(如25%)的內(nèi)存占用比之間時,將瀏覽器的頁面中的圖片釋放,可選的,釋放結(jié)束條件可以為直至內(nèi)存降至小于20%,也可以是釋放一次即結(jié)束,等待下次的內(nèi)存占用值檢測;
當(dāng)內(nèi)存占用值大于30%(如35%)的內(nèi)存占用比時,可判斷瀏覽器的運(yùn)行頁面數(shù)量是否小于最小運(yùn)行限值,在判斷為是時,不作優(yōu)化,在判斷為否時,可將瀏覽器運(yùn)行最久的頁面進(jìn)行釋放。
值得注意的是,本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法也可應(yīng)用于其他非瀏覽器的場景,如應(yīng)用于即時通訊應(yīng)用等其他應(yīng)用中。
可選的,本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法,可應(yīng)用于IOS操作系統(tǒng)中,對iOS瀏覽器上的頁面WebView作內(nèi)存優(yōu)化;顯然,本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法也可適用于其他操作系統(tǒng),如安卓、windowsphone等。
本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化方法,通過確定目標(biāo)應(yīng)用當(dāng)前的內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級,采用所確定的內(nèi)存占用等級對應(yīng)的內(nèi)存釋放手段對目標(biāo)應(yīng)用的內(nèi)存占用對象進(jìn)行釋放,而不是在目標(biāo)應(yīng)用的內(nèi)存占用值較大時,直接殺死目標(biāo)應(yīng)用,實(shí)現(xiàn)了對目標(biāo)應(yīng)用具體的占用內(nèi)存的對象的釋放,使得目標(biāo)應(yīng)用所占用的內(nèi)存降低,提升了目標(biāo)應(yīng)用的運(yùn)行穩(wěn)定性。
下面對本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化裝置進(jìn)行介紹,下文描述的內(nèi)存優(yōu)化裝置可與上文描述的內(nèi)存優(yōu)化方法相互對應(yīng)參照。
圖6為本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化裝置的結(jié)構(gòu)框圖,該裝置可應(yīng)用于用戶設(shè)備,可對用戶設(shè)備所裝載的某一目標(biāo)應(yīng)用進(jìn)行具體的內(nèi)存優(yōu)化;參照圖6,該內(nèi)存優(yōu)化裝置可以包括:
檢測模塊100,用于檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值,所述目標(biāo)應(yīng)用具有多個占用內(nèi)存的內(nèi)存占用對象;
等級確定模塊200,用于確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級;
釋放模塊300,用于根據(jù)設(shè)定的內(nèi)存占用等級與內(nèi)存釋放手段的對應(yīng)關(guān)系,以所述內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段,釋放所述目標(biāo)應(yīng)用的內(nèi)存占用對象。
可選的,圖7示出了本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化裝置的另一結(jié)構(gòu)框圖,結(jié)合圖6和圖7所示,該內(nèi)存優(yōu)化裝置還可以包括:
趨勢確定模塊400,用于收集設(shè)定時間區(qū)間內(nèi)所述目標(biāo)應(yīng)用所占用的內(nèi)存占用值集合,所述內(nèi)存占用值集合具有多個內(nèi)存占用值,根據(jù)所述內(nèi)存占用值集合判斷內(nèi)存占用趨勢是否處于上升趨勢,若是,則確定內(nèi)存占用趨勢處 于上升趨勢,以使所述等級確定模塊確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級,若否,則確定內(nèi)存占用趨勢處于非上升趨勢,以使所述等級確定模塊取消確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級。
可選的,圖8示出了本發(fā)明實(shí)施例提供的趨勢確定模塊400的一種可選結(jié)構(gòu),參照圖8,趨勢確定模塊400可以包括:
導(dǎo)線方向確定單元410,用于確定所述內(nèi)存占用值集合所對應(yīng)的內(nèi)存占用值趨勢的導(dǎo)線方向;
趨勢結(jié)果確定單元420,用于若所述導(dǎo)線方向與上升方向?qū)?yīng),則確定內(nèi)存占用趨勢處于上升趨勢,若所述導(dǎo)線方向不與上升方向?qū)?yīng),則確定內(nèi)存占用趨勢處于非上升趨勢。
可選的,檢測模塊100可采用異步方式檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值,具體的,檢測模塊100可使用設(shè)置于所述目標(biāo)應(yīng)用內(nèi)的內(nèi)存檢測進(jìn)程,定時異步檢測所述目標(biāo)應(yīng)用所占用的內(nèi)存占用值。
可選的,本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化裝置可應(yīng)用于瀏覽器場景,對應(yīng)的,目標(biāo)應(yīng)用為瀏覽器,內(nèi)存占用對象為瀏覽器頁面;
可選的,所述目標(biāo)應(yīng)用的內(nèi)存占用等級包括第一內(nèi)存占用等級至第N內(nèi)存占用等級,N為大于1的整數(shù);
圖9示出了本發(fā)明實(shí)施例提供的釋放模塊300的一種可選結(jié)構(gòu),參照圖9,釋放模塊300可以包括:
第一釋放單元310,用于若所述內(nèi)存占用等級為第一內(nèi)存占用等級,確定符合設(shè)定的釋放條件的瀏覽器頁面,釋放所述符合設(shè)定的釋放條件的瀏覽器頁面;
第二釋放單元320,用于若所述內(nèi)存占用等級為第i內(nèi)存占用等級,則根據(jù)第i內(nèi)存占用等級所對應(yīng)的釋放內(nèi)存的頁面內(nèi)容類型,釋放瀏覽器頁面中與所述頁面內(nèi)容類型相應(yīng)的內(nèi)容,其中,1<i≤N,i為整數(shù)。
可選的,圖10示出了本發(fā)明實(shí)施例提供的內(nèi)存優(yōu)化裝置的再一結(jié)構(gòu)框圖,結(jié)合圖6、圖9和圖10所示,該內(nèi)存優(yōu)化裝置還可以包括:
系統(tǒng)觸發(fā)釋放模塊500,用于若接收到系統(tǒng)發(fā)出的內(nèi)存警告的次數(shù)大于設(shè)定次數(shù),則確定符合設(shè)定的釋放條件的瀏覽器頁面,釋放所述符合設(shè)定的釋放條件的瀏覽器頁面。
本發(fā)明實(shí)施例中符合設(shè)定的釋放條件的瀏覽器頁面可自定義,可選的,在確定符合設(shè)定的釋放條件的瀏覽器頁面時,本發(fā)明實(shí)施例可將不處于頁面白名單中的頁面確定為符合設(shè)定的釋放條件的瀏覽器頁面;和/或,將頁面類型與設(shè)定不釋放內(nèi)存的頁面類型不符的頁面,確定為符合設(shè)定的釋放條件的瀏覽器頁面;或,將運(yùn)行時間最久的頁面確定為符合設(shè)定的釋放條件的瀏覽器頁面。
可選的,圖11示出了本發(fā)明實(shí)施例提供的第一釋放單元的一種可選結(jié)構(gòu),參照圖11,第一釋放單元310可以包括:
頁面數(shù)判斷子單元3101,用于判斷瀏覽器當(dāng)前運(yùn)行的頁面數(shù)量是否小于最小運(yùn)行限值;
釋放執(zhí)行子單元3102,用于若所述頁面數(shù)判斷子單元的判斷結(jié)果為否,則釋放所述符合設(shè)定的釋放條件的瀏覽器頁面,若所述頁面數(shù)判斷子單元的判斷結(jié)果為是,則取消釋放所述符合設(shè)定的釋放條件的瀏覽器頁面。
本發(fā)明實(shí)施例還提供一種用戶設(shè)備,該用戶設(shè)備可以包括上述所述的內(nèi)存優(yōu)化裝置;該用戶設(shè)備可以如手機(jī)、平板電腦、筆記本電腦等設(shè)備。
圖12示出了本發(fā)明實(shí)施例提供的用戶設(shè)備的硬件結(jié)構(gòu)框圖,參照圖12,用戶設(shè)備備可以包括:處理器1,通信接口2,存儲器3和通信總線4;
其中處理器1、通信接口2、存儲器3通過通信總線4完成相互間的通信;
可選的,通信接口2可以為通信模塊的接口,如GSM模塊的接口;
處理器1,用于執(zhí)行程序;
存儲器3,用于存放程序;
程序可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。
處理器1可能是一個中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個或多個集成電路。
存儲器3可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
其中,程序可具體用于:
檢測目標(biāo)應(yīng)用所占用的內(nèi)存占用值,所述目標(biāo)應(yīng)用具有多個占用內(nèi)存的內(nèi)存占用對象;
確定所述內(nèi)存占用值所對應(yīng)的內(nèi)存占用等級;
根據(jù)設(shè)定的內(nèi)存占用等級與內(nèi)存釋放手段的對應(yīng)關(guān)系,以所述內(nèi)存占用等級所對應(yīng)的內(nèi)存釋放手段,釋放所述目標(biāo)應(yīng)用的內(nèi)存占用對象。
本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。