亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種管理程序內(nèi)存占用量的方法和終端的制作方法

文檔序號:10470998閱讀:248來源:國知局
一種管理程序內(nèi)存占用量的方法和終端的制作方法
【專利摘要】本發(fā)明公開了一種管理程序內(nèi)存占用量的方法和終端,包括:前臺程序的任務獲取和輸出數(shù)據(jù)的過程中,檢測程序任務的運行狀態(tài);根據(jù)檢測的運行狀態(tài),為每個任務分配內(nèi)存占用閾值;檢測每個任務的內(nèi)存占用情況,若檢測到任一所述任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,暫停該任務獲取數(shù)據(jù)的過程;若檢測到該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)該任務獲取數(shù)據(jù)的過程;若檢測到系統(tǒng)內(nèi)存的占用量達到預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理。從上面所述可以看出,本發(fā)明提供的一種管理程序內(nèi)存占用量的方法和終端既保證了前臺程序的正常運行,又能夠避免觸發(fā)系統(tǒng)自動清理導致后臺程序被意外終止,提高了移動終端上程序的可靠性。
【專利說明】
一種管理程序內(nèi)存占用量的方法和終端
技術領域
[0001]本發(fā)明涉及移動設備管理技術領域,特別是指一種管理程序內(nèi)存占用量的方法和終端。
【背景技術】
[0002]隨著智能終端技術和軟件技術的日益發(fā)展,如手機、平板電腦等便攜式終端所能實現(xiàn)的功能越來越豐富,在一定程度上替代了傳統(tǒng)的臺式個人電腦和筆記本電腦。但是,受設計空間和容量限制,智能終端的硬件規(guī)格通常低于傳統(tǒng)電腦,特別是其RAM(Random-Access Memory,隨機存取存儲器),即常說的內(nèi)存,容量通常較低;在前臺程序執(zhí)行多線程任務,導致內(nèi)存占用量過大時,會觸發(fā)系統(tǒng)的自動清理功能,將后臺程序終止,影響用戶的正常使用;當前臺任務內(nèi)存占用進一步增加時,最終也會被系統(tǒng)終止,甚至導致整個系統(tǒng)故障。由于硬件條件存在客觀約束,無法隨意增加系統(tǒng)內(nèi)存,因此希望能使用軟件實現(xiàn)對前臺程序內(nèi)存占用量的限制,以保證前臺、后臺程序的正常運行。

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

[0003]有鑒于此,本發(fā)明的目的在于提出一種管理程序內(nèi)存占用量的方法和終端,用以實現(xiàn)通過動態(tài)調整前臺程序每個任務的可用內(nèi)存量限制前臺程序的內(nèi)存占用量。
[0004]基于上述目的本發(fā)明提供的一種管理程序內(nèi)存占用量的方法,包括:
[0005]前臺程序的任務獲取數(shù)據(jù)的過程中,檢測程序任務的運行狀態(tài);
[0006]根據(jù)檢測的每個程序的任務的運行狀態(tài),為每個任務分配內(nèi)存占用閾值;
[0007]檢測每個任務的內(nèi)存占用情況,若檢測到任一所述任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,暫停該任務獲取數(shù)據(jù)的過程;若檢測到該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)該任務獲取數(shù)據(jù)的過程;
[0008]若檢測到系統(tǒng)內(nèi)存的占用量達到預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理。
[0009]可選的,所述運行狀態(tài)包括:完成任務當前任務預期占用的最大內(nèi)存值;所述根據(jù)運行狀態(tài),為每個任務分配內(nèi)存占用閾值,包括:
[0010]將系統(tǒng)的可用內(nèi)存值按照每個任務預期占用的最大內(nèi)存值的比例分配給每個任務。
[0011 ]可選的,獲取所述可用內(nèi)存值的方法包括:
[0012]獲取系統(tǒng)當前全部后臺程序的內(nèi)存占用量;
[0013]用所述清理閾值減去所述內(nèi)存占用量得到所述可用內(nèi)存值;或,用所述清理閾值減去所述內(nèi)存占用量,再減去一緩沖值,得到所述可用內(nèi)存值。
[0014]可選的,所述緩沖值為:
[0015]所述清理閾值減去所述內(nèi)存占用量的差乘以預設的緩沖值系數(shù),其中所述緩沖系數(shù)為預設的O?0.5之間的實數(shù)。
[0016]可選的,每個所述任務包括數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列;所述數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列均包括有多個容量相同的數(shù)據(jù)塊,其中第一個數(shù)據(jù)塊作為頭數(shù)據(jù)塊;
[0017]所述前臺程序的任務獲取數(shù)據(jù)的過程包括:
[0018]所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲所述任務獲取的數(shù)據(jù),若所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲的數(shù)據(jù)量達到預設的數(shù)據(jù)塊容量,將其移動至所述數(shù)據(jù)輸出隊列尾部,將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊;
[0019]所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊輸出數(shù)據(jù),若所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊完成數(shù)據(jù)輸出過程,刪除頭數(shù)據(jù)塊保存的數(shù)據(jù),將其移動至所述數(shù)據(jù)獲取隊列尾部,將所述數(shù)據(jù)輸出隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊;
[0020]所述根據(jù)檢測的每個程序任務的運行狀態(tài),為每個任務分配內(nèi)存占用閾值包括:
[0021]用所述內(nèi)存占用閾值除以所述數(shù)據(jù)塊容量得到數(shù)量閾值;
[0022]所述若檢測到任一所述任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,暫停該任務獲取數(shù)據(jù)的過程,包括:
[0023]若檢測所述數(shù)據(jù)輸出隊列上的數(shù)據(jù)塊數(shù)量達到所述數(shù)量閾值,則判定該任務所占用的內(nèi)存值達到其內(nèi)存占用閾值;將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為頭數(shù)據(jù)塊后,暫停向新的頭數(shù)據(jù)塊存儲數(shù)據(jù);
[0024]所述若檢測到該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)該任務獲取數(shù)據(jù)的過程,包括:
[0025]若檢測到所述數(shù)據(jù)輸出隊列上的數(shù)據(jù)塊數(shù)量未達到所述數(shù)量閾值,則判定該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值;繼續(xù)所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊的數(shù)據(jù)存儲過程。
[0026]可選的,該方法還包括:
[0027]在前臺程序運行的過程中,查找與所述前臺程序關聯(lián)后臺程序,為所述后臺程序添加保護標簽;
[0028]所述若檢測到系統(tǒng)內(nèi)存的占用量大于預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理,包括:
[0029]將內(nèi)存中未設置保護標簽的后臺程序按照優(yōu)先級由高到低的順序進行排序,按照順序依次終止所述后臺程序,直至被終止的后臺程序的總內(nèi)存占用量大于所述清理閾值。
[0030]可選的,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序轉入后臺的時間,按照轉入時間由早到晚的順序對后臺程序設置由高到低的優(yōu)先級;
[0031]或者所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小,按照占用內(nèi)存由大到小的順序對后臺程序設置由高到低的優(yōu)先級。
[0032]可選的,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小時,所述按照順序依次終止所述后臺程序,包括:
[0033]在對后臺程序執(zhí)行終止操作前,檢測該后臺程序轉入后臺的時間,判斷所述時間是否早于預設的時間閾值;若是,則終止該后臺程序,否則繼續(xù)檢測下一臨時文件;其中所述時間閾值是距所述終止操作發(fā)生的時刻第一時間間隔前的系統(tǒng)時間。
[0034]本發(fā)明還提供一種管理程序內(nèi)存占用量的終端,包括:
[0035]狀態(tài)檢測單元,用于在前臺程序的任務獲取和輸出數(shù)據(jù)的過程中,檢測程序任務的運行狀態(tài);
[0036]占用閾值分配單元,用于根據(jù)檢測的每個程序任務的運行狀態(tài),為每個任務分配內(nèi)存占用閾值;
[0037]前臺程序控制單元,用于檢測每個任務的內(nèi)存占用情況,若檢測到任一所述任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,暫停該任務獲取數(shù)據(jù)的過程;若檢測到該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)該任務獲取數(shù)據(jù)的過程;
[0038]后臺程序清理單元,若檢測到系統(tǒng)內(nèi)存的占用量達到預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理。
[0039]可選的,所述運行狀態(tài)包括:完成任務當前任務預期占用的最大內(nèi)存值;所述占用閾值分配單元用于將系統(tǒng)的可用內(nèi)存值按照每個任務預期占用的最大內(nèi)存值的比例分配給每個任務。
[0040]可選的,所述占用閾值分配單元用于獲取系統(tǒng)當前全部后臺程序的內(nèi)存占用量;用所述清理閾值減去所述內(nèi)存占用量得到所述可用內(nèi)存值;或,用所述清理閾值減去所述內(nèi)存占用量,再減去一緩沖值,得到所述可用內(nèi)存值。
[0041]可選的,所述緩沖值為:
[0042]所述清理閾值減去所述內(nèi)存占用量的差乘以預設的緩沖值系數(shù),其中所述緩沖系數(shù)為預設的O?0.5之間的實數(shù)。
[0043]可選的,每個所述任務包括數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列;所述數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列均包括多個數(shù)據(jù)塊,其中第一個數(shù)據(jù)塊作為頭數(shù)據(jù)塊;
[0044]所述前臺程序控制單元用于控制所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲所述任務獲取的數(shù)據(jù),若所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲的數(shù)據(jù)量達到預設的數(shù)據(jù)塊容量,將其移動至所述數(shù)據(jù)輸出隊列尾部,將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊;
[0045]所述前臺程序控制單元還用于控制所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊輸出數(shù)據(jù),若所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊完成數(shù)據(jù)輸出過程,刪除頭數(shù)據(jù)塊保存的數(shù)據(jù),將其移動至所述數(shù)據(jù)獲取隊列尾部,將所述數(shù)據(jù)輸出隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊;
[0046]所述占用閾值分配單元用于把所述內(nèi)存占用閾值除以所述數(shù)據(jù)塊容量得到數(shù)量閾值;
[0047]所述前臺程序控制單元用于檢測所述數(shù)據(jù)輸出隊列上的數(shù)據(jù)塊數(shù)量是否達到所述數(shù)量閾值,若達到,判定該任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為頭數(shù)據(jù)塊后,暫停向新的頭數(shù)據(jù)塊存儲數(shù)據(jù);若未達到,判定該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊的數(shù)據(jù)存儲過程。
[0048]可選的,所述后臺程序清理單元還用于在前臺程序運行的過程中,查找與所述前臺程序關聯(lián)的后臺程序,為所述后臺程序添加保護標簽;在檢測到系統(tǒng)內(nèi)存的占用量大于預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理時,所述后臺程序清理單元用于將內(nèi)存中未設置保護標簽的后臺程序按照優(yōu)先級由高到低的順序進行排序,按照順序依次終止所述后臺程序,直至被終止的后臺程序的總內(nèi)存占用量大于所述清理閾值。
[0049]可選的,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序轉入后臺的時間,按照轉入時間由早到晚的順序對后臺程序設置由高到低的優(yōu)先級;
[0050]或者所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小,按照占用內(nèi)存由大到小的順序對后臺程序設置由高到低的優(yōu)先級。
[0051]可選的,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小時,所述后臺程序清理單元用于在執(zhí)行終止操作前,檢測后臺程序轉入后臺的時間,判斷所述時間是否早于預設的時間閾值;若是,則終止該后臺程序,否則繼續(xù)檢測下一臨時文件;其中所述時間閾值是距所述刪除操作發(fā)生的時刻第一時間間隔前的系統(tǒng)時間。
[0052]從上面所述可以看出,本發(fā)明提供的一種管理程序內(nèi)存占用量的方法和終端,根據(jù)系統(tǒng)后臺程序的內(nèi)存占用情況,動態(tài)調整前臺程序每個任務的可用內(nèi)存值,在保證全部程序占用的內(nèi)存總量不超過系統(tǒng)的清理閾值的前提下,盡可能為前臺程序提供充足的運行內(nèi)存;既保證了前臺程序的正常運行,又能夠避免觸發(fā)系統(tǒng)自動清理導致后臺程序被意外終止,提高了移動終端上程序的可靠性。
【附圖說明】
[0053]圖1為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第一實施例的流程示意圖;
[0054]圖2為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第二實施例的流程示意圖;
[0055]圖3為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第三實施例的流程示意圖;
[0056]圖4為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第四實施例的流程示意圖;
[0057]圖5為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第五實施例的流程示意圖;
[0058]圖6為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第六實施例的流程示意圖;
[0059]圖7為本發(fā)明提供的一種管理程序內(nèi)存占用量的終端的模塊示意圖。
【具體實施方式】
[0060]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。
[0061 ] 第一實施例
[0062]圖1為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第一實施例的流程示意圖;如圖所示,本實施例提供一種管理程序內(nèi)存占用量的方法,包括:
[0063]S10,前臺程序的任務獲取和輸出數(shù)據(jù)的過程中,檢測程序任務的運行狀態(tài)。其中所述運行狀態(tài)需根據(jù)任務執(zhí)行的具體任務確定;例如,對于執(zhí)行網(wǎng)絡視頻播放的程序任務來說,其運行狀態(tài)取決于當前網(wǎng)絡狀態(tài)(下載速度等)、視頻文件清晰度(碼率等)等,這些都會影響視頻播放任務的內(nèi)存占用量。
[0064]Sll,根據(jù)檢測的每個程序任務的運行狀態(tài),為每個任務分配內(nèi)存占用閾值。即根據(jù)每個任務的所要完成任務量的不同,按需求分配內(nèi)存額度,具體的分配方法在下面的實施例中給出。
[0065]S12,檢測并判斷每個任務的內(nèi)存占用情況:判斷任一所述任務所占用的內(nèi)存值是否達到其內(nèi)存占用閾值;若是,則執(zhí)行步驟S12a,否則執(zhí)行步驟S12b;
[0066]S12a,若檢測到任一所述任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,暫停該任務獲取數(shù)據(jù)的過程;
[0067]SI2b,若檢測到該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)該任務獲取數(shù)據(jù)的過程。需要說明的是,任務內(nèi)存的占用情況從其開始執(zhí)行任務,呈現(xiàn)由O開始逐漸增長,直到達到某一定值后穩(wěn)定的趨勢。步驟S12b涵蓋了所述增長的過程,這里不再贅述。
[0068]本實施例主要針對的是同時執(zhí)行數(shù)據(jù)獲取和數(shù)據(jù)輸出的任務,在獲取和輸出之間還可以包含數(shù)據(jù)處理的過程;數(shù)據(jù)獲取、處理、輸出均會占用內(nèi)存資源,其中數(shù)據(jù)處理、輸出過程決定了任務執(zhí)行任務的連續(xù)性和流暢性,通常無法暫停,在不影響任務正常完成任務的前提下,若要限制其占用的內(nèi)存資源,主要方法為暫停任務的數(shù)據(jù)獲取過程。
[0069]S13,若檢測到系統(tǒng)內(nèi)存的占用量達到預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理。上述步驟S10-S12用于管理程序本身的內(nèi)存占用量,而步驟S13則是在步驟S10-S12處理完成后,仍然無法將前臺程序和后臺程序的總內(nèi)存占用限定在一定數(shù)據(jù)內(nèi)時,對系統(tǒng)內(nèi)存執(zhí)行清理;區(qū)別于現(xiàn)有的清理過程,本步驟中在執(zhí)行清理時,會保留與前臺程序相關聯(lián)的部分后臺程序,從而保證前臺程序的正常運作,具體方法在下面的實施例中給出。
[0070]可以看出本實施例提供的方法,用于對前臺程序的任務所能夠占用的內(nèi)存值執(zhí)行動態(tài)調整;即每個任務的內(nèi)存值并非固定不變,而是根據(jù)程序所運行的系統(tǒng)環(huán)境、系統(tǒng)內(nèi)存占用量動態(tài)調整,從而在保證程序正常功能的前提下,優(yōu)化每個任務的內(nèi)存占用額度,以避免系統(tǒng)內(nèi)存的總占用量過高導致自動清理后臺程序。
[0071 ] 第二實施例
[0072]圖2為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第二實施例的流程示意圖;如圖所示,本實施例在第一實施例的基礎上,進一步說明了所述運行狀態(tài),包括:完成任務當前任務預期占用的最大內(nèi)存值;所述步驟Sll,根據(jù)運行狀態(tài),為每個任務分配內(nèi)存占用閾值,包括:
[0073]S20,將系統(tǒng)的可用內(nèi)存值按照每個任務預期占用的最大內(nèi)存值的比例分配給每個任務。仍然以視頻播放程序為例,在理想的運行狀態(tài)預期下,任務I需要占用50Mb的內(nèi)存資源,任務2需要占用25Mb的內(nèi)存資源,但經(jīng)過計算得出系統(tǒng)的可用內(nèi)存值僅為60Mb;此時,依本實施例,按照比例向任務I分配40Mb的內(nèi)存占用閾值,向任務2分配20Mb的內(nèi)存占用閾值,從而將程序的整體內(nèi)存占用量限制在60Mb之內(nèi),使其不超過系統(tǒng)的可用內(nèi)存值,避免觸發(fā)自動清理過程。
[0074]上述分配過程前提是:需要保證任務正常完成任務。在第一實施例中已經(jīng)說明,本實施例主要針對的是同時執(zhí)行數(shù)據(jù)獲取和數(shù)據(jù)輸出的任務,在獲取和輸出之間還可以包含數(shù)據(jù)處理的過程;而數(shù)據(jù)處理、數(shù)據(jù)輸出的過程所消耗的內(nèi)存資源通常為定值,在具體實施時,采用減少數(shù)據(jù)獲取過程的內(nèi)存占用量的策略降低任務整體內(nèi)存占用量。例如,任務I在理想狀態(tài)下工作時,占用內(nèi)存量為50Mb,其中1Mb的內(nèi)存資源用于數(shù)據(jù)處理,1Mb的內(nèi)存資源用于數(shù)據(jù)輸出,30Mb的內(nèi)存資源用于數(shù)據(jù)獲取,則在將其內(nèi)存占用量限定為40Mb內(nèi)時,只提供20Mb的內(nèi)存資源用于數(shù)據(jù)獲??;由于數(shù)據(jù)獲取過程占用的內(nèi)存資源,主要是用于執(zhí)行數(shù)據(jù)的預存,以避免網(wǎng)絡波動造成的影響,因此適量降低其內(nèi)存占用對于程序的主要功能不會造成過多損失。
[0075]第三實施例
[0076]圖3為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第三實施例的流程示意圖;如圖所示,本實施例介紹上述是實施例中系統(tǒng)的可用內(nèi)存值的計算方法,包括:
[0077]S30,獲取系統(tǒng)當前全部后臺程序的內(nèi)存占用量;
[0078]S31,用所述清理閾值減去所述內(nèi)存占用量得到所述可用內(nèi)存值;或,
[0079]S32,用所述清理閾值減去所述內(nèi)存占用量,再減去一緩沖值,得到所述可用內(nèi)存值。步驟S31與步驟S32擇一執(zhí)行。
[0080]本實施例中步驟S31的方法較為容易理解。當系統(tǒng)內(nèi)存的占用量達到清理閾值時,系統(tǒng)會執(zhí)行后臺程序清理,因此在保證不執(zhí)行后臺清理的前提下,前臺程序所能夠占用的最大內(nèi)存量即為使用清理閾值減去后臺程序內(nèi)存占用量后得到的值。由于后臺程序的內(nèi)存占用量可能會發(fā)生變化,因此所述可用內(nèi)存值應當定期計算、更新;具體的更新間隔根據(jù)具體情況確定,例如設置為5s至Imin之間的任意時間長度,可選的可以設置為30s。
[0081 ]步驟S32的方法,則是在步驟S31的基礎上,再次減去一緩沖值得到可用內(nèi)存值。由于前臺程序和后臺程序的內(nèi)存占用量均為時刻改變的值,若僅采用步驟S31中的計算方法,則可能出現(xiàn)前一次可用內(nèi)存值計算完畢后,后臺程序的內(nèi)存占用總量突然增加,導致總的內(nèi)存占用量超出清理閾值引發(fā)系統(tǒng)自動清理的情況。因此額外減去一緩沖值,以提高本方法的穩(wěn)定性與適應性。
[0082]可選的,所述清理閾值減去所述內(nèi)存占用量的差乘以預設的緩沖值系數(shù),其中所述緩沖系數(shù)為預設的O?0.5之間的實數(shù)。即,緩沖值設置為一個伴隨后臺程序內(nèi)存占用量不斷更新變化的值;當后臺程序的內(nèi)存占用量較低時,所述清理閾值減去所述內(nèi)存占用量的結果較大,得到的緩沖值也較大,可以允許后臺程序內(nèi)存占用量上下波動的范圍也較大;而后臺程序的內(nèi)存占用量較高時,所述清理閾值減去所述內(nèi)存占用量的結果較小,得到的緩沖值也較小,可以允許后臺程序內(nèi)存占用量上下波動的范圍也較小。這樣在內(nèi)存容量較為充裕時,可以允許后臺程序的內(nèi)存占用量發(fā)生較大程度的突然變化,提高容錯;在內(nèi)存容量較為緊張時,則對后臺程序的內(nèi)存占用量限制的較為嚴格,盡可能避免觸發(fā)系統(tǒng)自動清理。
[0083]第四實施例
[0084]圖4為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第四實施例的流程示意圖;如圖所示,本實施例提供的方法用于說明所述前臺程序的任務如何完成數(shù)據(jù)獲取和數(shù)據(jù)輸出過程。每個所述任務包括數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列;所述數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列均包括多個數(shù)據(jù)塊,其中第一個作為頭數(shù)據(jù)塊。
[0085]所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊用于存儲所述任務獲取的數(shù)據(jù),若所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲的數(shù)據(jù)量達到預設的數(shù)據(jù)塊容量,將其移動至所述數(shù)據(jù)輸出隊列尾部,將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊;
[0086]所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊用于輸出數(shù)據(jù),若所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊完成數(shù)據(jù)輸出過程,刪除其上保存的數(shù)據(jù),將其移動至所述數(shù)據(jù)獲取隊列尾部,將所述數(shù)據(jù)輸出隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊。
[0087]在一些可選的實施例中,任務還包括數(shù)據(jù)處理隊列。所述數(shù)據(jù)處理隊列的頭數(shù)據(jù)塊用于存儲任務獲取的原始數(shù)據(jù),并在所述原始數(shù)據(jù)經(jīng)處理完畢得到用于執(zhí)行輸出新數(shù)據(jù)后,使用所述新數(shù)據(jù)替換所述原始數(shù)據(jù),然后將所述頭數(shù)據(jù)塊移動至所述數(shù)據(jù)輸出隊列尾部,將所述數(shù)據(jù)處理隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊。若任務包含數(shù)據(jù)處理隊列時,則數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲的數(shù)據(jù)量達到預設的數(shù)據(jù)塊容量,將其移動至所述數(shù)據(jù)處理隊列尾部。
[0088]需要說明的時,每一隊列中數(shù)據(jù)塊的數(shù)量、數(shù)據(jù)塊的總數(shù)量可能會發(fā)生改變;任務會根據(jù)需要,向系統(tǒng)申請新的內(nèi)存地址以存儲更多臨時數(shù)據(jù),此時數(shù)據(jù)塊數(shù)量增加,任務的內(nèi)存占用量增加;也可以在判定某數(shù)據(jù)塊閑置后,向系統(tǒng)說明釋放該數(shù)據(jù)塊,即釋放數(shù)據(jù)塊占用的對應內(nèi)存地址,此時數(shù)據(jù)塊數(shù)量減少,任務的內(nèi)存占用量減少。
[0089]本實施例給出的只是任務中數(shù)據(jù)流動的一個可選實施方式,在每個任務中,有一定資源用于執(zhí)行數(shù)據(jù)獲取工作,有另一些資源用于執(zhí)行數(shù)據(jù)存儲工作,不同工作根據(jù)占用的資源可以劃分為以下幾類:
[0090]I)從外部獲取數(shù)據(jù)的過程(占用內(nèi)存資源較為固定)
[0091]2)臨時存儲外部數(shù)據(jù)的過程(占用內(nèi)存資源不定,但設定有一最大值,當超出此最大值后,則不再繼續(xù)獲取)
[0092]3)輸出數(shù)據(jù)的過程(占用的內(nèi)存資源較為固定)
[0093]可選的,還可以包括:
[0094]4)數(shù)據(jù)處理的過程(占用的內(nèi)存資源較為固定)
[0095]5)臨時存儲經(jīng)數(shù)據(jù)處理后得到的新數(shù)據(jù)的過程(占用內(nèi)存資源不定,但設定有一最大值,當超出此最大值后,則不再繼續(xù)獲取)。
[0096]上述第一實施例中指出,根據(jù)每個任務的所要完成任務量的不同,按需求分配內(nèi)存占用閾值,對應于本實施例,所述內(nèi)存占用閾值主要用于限制上述第2和第5項的內(nèi)存占用,即當內(nèi)存占用量較高時,暫停數(shù)據(jù)獲取和可能存在的數(shù)據(jù)處理過程,而繼續(xù)執(zhí)行數(shù)據(jù)輸出過程,從而逐步降低臨時數(shù)據(jù)的內(nèi)存占用量;直到內(nèi)存占用量重新回到較低水平后,再次啟動數(shù)據(jù)獲取和數(shù)據(jù)處理過程,從而將任務的內(nèi)存占用量維持在一較為穩(wěn)定的水平。
[0097]因此基于本實施例,第一實施例中步驟S12a,若檢測到任一所述任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,暫停該任務獲取數(shù)據(jù)的過程,包括:
[0098]S40,將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為頭數(shù)據(jù)塊后,暫停新的頭數(shù)據(jù)塊的數(shù)據(jù)存儲過程。
[0099]所述步驟S12b,若檢測到該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)該任務獲取數(shù)據(jù)的過程,包括:
[0100]S41,繼續(xù)所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊的數(shù)據(jù)存儲過程。
[0101]第五實施例
[0102]圖5為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第五實施例的流程示意圖;如圖所示,在第四實施例的基礎上,步驟S12a,若檢測到任一所述任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,暫停該任務獲取數(shù)據(jù)的過程,包括:
[0103]S50,若檢測所述數(shù)據(jù)輸出隊列上的數(shù)據(jù)快數(shù)量達到預設的數(shù)量閾值,則判定該任務所占用的內(nèi)存值達到其內(nèi)存占用閾值;所述數(shù)量閾值為所述內(nèi)存占用閾值除以所述數(shù)據(jù)塊容量。
[0104]在獲取內(nèi)存占用閾值后,使用內(nèi)存占用閾值除以單個數(shù)據(jù)塊所能夠容納的數(shù)據(jù)量,并向下取整,得到數(shù)據(jù)塊的數(shù)量閾值。在任務執(zhí)行工作的過程中,使用數(shù)量閾值進行判定任務占用的內(nèi)存值是否達到內(nèi)存占用閾值,可以省去內(nèi)存占用監(jiān)控的步驟,一定程度上節(jié)約判定時間。
[0105]第六實施例
[0106]圖6為本發(fā)明提供的一種管理程序內(nèi)存占用量的方法的第六實施例的流程示意圖;如圖所示,以上第一至第五實施例均針對前臺程序,其中心思想為如何將前臺程序的內(nèi)存占用量根據(jù)后臺程序內(nèi)存占用量和系統(tǒng)內(nèi)存總量進行動態(tài)調整,從而在保證不觸發(fā)系統(tǒng)自動清理的前提下,盡可能為前臺程序的運行提供較大的內(nèi)存空間。而本實施例則是針對一些意外情況下系統(tǒng)觸發(fā)自動清理后,如何保存關鍵后臺程序不被清理以保證前臺程序正常運行。
[0107]在本實施例中,本發(fā)明的方法還包括:
[0108]S60,在前臺程序運行的過程中,查找與所述前臺程序關聯(lián)后臺程序,為所述后臺程序添加保護標簽。所述保護標簽即為系統(tǒng)能夠識別的特殊標志,對其形式不做限定。
[0109]所述S13,若檢測到系統(tǒng)內(nèi)存的占用量達到預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理,包括:
[0110]S61,將內(nèi)存中未設置保護標簽的后臺程序按照優(yōu)先級由高到低的順序進行排序,按照順序依次終止所述后臺程序,直至被終止的后臺程序的總內(nèi)存占用量大于所述清理閾值。
[0111]本實施例提出了“保護標簽”的概念。區(qū)別于現(xiàn)有技術中,一些內(nèi)存清理程序中在執(zhí)行清理過程時的“保留列表”等,本實施例中的保護標簽除可以由用戶專門添加外,還可以在程序設計過程中加入,使其作為不借助其他第三方軟件即可被系統(tǒng)識別的特征。例如,為所述前臺程序、與所述前臺程序關聯(lián)的后臺程序均添加所述保護標簽,則在執(zhí)行系統(tǒng)清理前,系統(tǒng)可以獲取到前臺程序的保護標簽,并相應查找后臺程序中設置有相同保護標簽的程序予以保留,這一過程無需用戶另行指定。
[0112]在一些可選的實施方式中,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序轉入后臺的時間,按照轉入時間由早到晚的順序對后臺程序設置由高到低的優(yōu)先級;或者,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小,按照占用內(nèi)存由大到小的順序對后臺程序設置由高到低的優(yōu)先級。
[0113]在另一實施方式中,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小時,所述S61中,按照優(yōu)先級依次終止所述后臺程序,包括:
[0114]S70,在執(zhí)行終止操作前,檢測后臺程序轉入后臺的時間,判斷所述時間是否早于預設的時間閾值;若是,終止該后臺程序,若否,則繼續(xù)檢測下一后臺程序。其中所述時間閾值是距所述刪除操作發(fā)生的時刻第一時間間隔前的系統(tǒng)時間。本實施方式額外考慮了后臺程序的時效性,即近期轉入后臺的程序,有較大可能性是用戶希望再次使用的程序,因此在執(zhí)行清理時對其進行保留,以盡可能保證用戶操作的流暢度。所述第一時間間隔根據(jù)實際情況確定,可以設置為5min-5h,可選的,設置為lh。此外,需要說明的是所述第一時間間隔中的“第一”僅用于對這一名詞進行標識,而非用于限定其用途。
[0115]圖7為本發(fā)明提供的一種管理程序內(nèi)存占用量的終端的模塊示意圖。如圖所示,除上述實施例外,本發(fā)明的另一實施例還提供一種管理程序內(nèi)存占用量的終端,包括:
[0116]狀態(tài)檢測單元70,用于在前臺程序的任務獲取和輸出數(shù)據(jù)的過程中,檢測程序任務的運行狀態(tài);
[0117]占用閾值分配單元71,用于根據(jù)檢測的每個程序任務的運行狀態(tài),為每個任務分配內(nèi)存占用閾值;
[0118]前臺程序控制單元72,用于檢測每個任務的內(nèi)存占用情況,若檢測到任一所述任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,暫停該任務獲取數(shù)據(jù)的過程;若檢測到該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)該任務獲取數(shù)據(jù)的過程;
[0119]后臺程序清理單元73,若檢測到系統(tǒng)內(nèi)存的占用量達到預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理。
[0120]可選的,所述運行狀態(tài)包括:完成任務當前任務預期占用的最大內(nèi)存值;所述占用閾值分配單元71用于將系統(tǒng)的可用內(nèi)存值按照每個任務預期占用的最大內(nèi)存值的比例分配給每個任務。
[0121]進一步,所述占用閾值分配單元71用于獲取系統(tǒng)當前全部后臺程序的內(nèi)存占用量;用所述清理閾值減去所述內(nèi)存占用量得到所述可用內(nèi)存值;或,用所述清理閾值減去所述內(nèi)存占用量,再減去一緩沖值,得到所述可用內(nèi)存值。
[0122]可選的,所述緩沖值為:
[0123]所述清理閾值減去所述內(nèi)存占用量的差乘以預設的緩沖值系數(shù),其中所述緩沖系數(shù)為預設的O?0.5之間的實數(shù)。
[0124]在一可選的實施例中,每個所述任務包括數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列;所述數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列均包括多個數(shù)據(jù)塊,其中第一個數(shù)據(jù)塊作為頭數(shù)據(jù)塊。
[0125]所述前臺程序控制單元72用于控制所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲所述任務獲取的數(shù)據(jù),若所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲的數(shù)據(jù)量達到預設的數(shù)據(jù)塊容量,將其移動至所述數(shù)據(jù)輸出隊列尾部,將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊;
[0126]所述前臺程序控制單元72還用于控制所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊輸出數(shù)據(jù),若所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊完成數(shù)據(jù)輸出過程,刪除頭數(shù)據(jù)塊保存的數(shù)據(jù),將其移動至所述數(shù)據(jù)獲取隊列尾部,將所述數(shù)據(jù)輸出隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊;
[0127]所述占用閾值分配單元71用于把所述內(nèi)存占用閾值除以所述數(shù)據(jù)塊容量得到數(shù)量閾值;
[0128]所述前臺程序控制單元72用于檢測所述數(shù)據(jù)輸出隊列上的數(shù)據(jù)塊數(shù)量是否達到所述數(shù)量閾值,若達到,判定該任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為頭數(shù)據(jù)塊后,暫停新的頭數(shù)據(jù)塊的數(shù)據(jù)存儲過程;若未達到,判定該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊的數(shù)據(jù)存儲過程。
[0129]進一步,所述后臺程序清理單元73還用于在前臺程序運行的過程中,查找與所述前臺程序關聯(lián)后臺程序,為所述后臺程序添加保護標簽;在檢測到系統(tǒng)內(nèi)存的占用量大于預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理時,所述后臺程序清理單元73用于將內(nèi)存中未設置保護標簽的后臺程序按照優(yōu)先級由高到低的順序進行排序,按照順序依次終止所述后臺程序,直至被終止的后臺程序的總內(nèi)存占用量大于所述清理閾值。
[0130]可選的,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序轉入后臺的時間,按照轉入時間由早到晚的順序對后臺程序設置由高到低的優(yōu)先級;
[0131]或者所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小,按照占用內(nèi)存由大到小的順序對后臺程序設置由高到低的優(yōu)先級。
[0132]可選的,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小時,所述后臺程序清理單元73用于在執(zhí)行終止操作前,檢測后臺程序轉入后臺的時間,判斷所述時間是否早于預設的時間閾值;若是,則終止該后臺程序,否則繼續(xù)檢測下一臨時文件;其中所述時間閾值是距所述刪除操作發(fā)生的時刻第一時間間隔前的系統(tǒng)時間。
[0133]從上面所述可以看出,本發(fā)明提供的一種管理程序內(nèi)存占用量的方法和終端,根據(jù)系統(tǒng)后臺程序的內(nèi)存占用情況,動態(tài)調整前臺程序每個任務的可用內(nèi)存值,在保證全部程序占用的內(nèi)存總量不超過系統(tǒng)的清理閾值的前提下,盡可能為前臺程序提供充足的運行內(nèi)存;既保證了前臺程序的正常運行,又能夠避免觸發(fā)系統(tǒng)自動清理導致后臺程序被意外終止,提高了移動終端上程序的可靠性。
[0134]所屬領域的普通技術人員應當理解:以上任何實施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權利要求)被限于這些例子;在本發(fā)明的思路下,以上實施例或者不同實施例中的技術特征之間也可以進行組合,步驟可以以任意順序實現(xiàn),并存在如上所述的本發(fā)明的不同方面的許多其它變化,為了簡明它們沒有在細節(jié)中提供。
[0135]另外,為簡化說明和討論,并且為了不會使本發(fā)明難以理解,在所提供的附圖中可以示出或可以不示出與集成電路(IC)芯片和其它部件的公知的電源/接地連接。此外,可以以框圖的形式示出裝置,以便避免使本發(fā)明難以理解,并且這也考慮了以下事實,即關于這些框圖裝置的實施方式的細節(jié)是高度取決于將要實施本發(fā)明的平臺的(即,這些細節(jié)應當完全處于本領域技術人員的理解范圍內(nèi))。在闡述了具體細節(jié)(例如,電路)以描述本發(fā)明的示例性實施例的情況下,對本領域技術人員來說顯而易見的是,可以在沒有這些具體細節(jié)的情況下或者這些具體細節(jié)有變化的情況下實施本發(fā)明。因此,這些描述應被認為是說明性的而不是限制性的。
[0136]盡管已經(jīng)結合了本發(fā)明的具體實施例對本發(fā)明進行了描述,但是根據(jù)前面的描述,這些實施例的很多替換、修改和變型對本領域普通技術人員來說將是顯而易見的。例如,其它存儲器架構(例如,動態(tài)RAM(DRAM))可以使用所討論的實施例。
[0137]本發(fā)明的實施例旨在涵蓋落入所附權利要求的寬泛范圍之內(nèi)的所有這樣的替換、修改和變型。因此,凡在本發(fā)明的精神和原則之內(nèi),所做的任何省略、修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【主權項】
1.一種管理程序內(nèi)存占用量的方法,其特征在于,包括: 前臺程序的任務獲取數(shù)據(jù)的過程中,檢測程序任務的運行狀態(tài); 根據(jù)檢測的每個程序的任務的運行狀態(tài),為每個任務分配內(nèi)存占用閾值; 檢測每個任務的內(nèi)存占用情況,若檢測到任一所述任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,暫停該任務獲取數(shù)據(jù)的過程;若檢測到該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)該任務獲取數(shù)據(jù)的過程; 若檢測到系統(tǒng)內(nèi)存的占用量達到預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理。2.根據(jù)權利要求1所述的方法,其特征在于,所述運行狀態(tài)包括:完成任務當前任務預期占用的最大內(nèi)存值;所述根據(jù)運行狀態(tài),為每個任務分配內(nèi)存占用閾值,包括: 將系統(tǒng)的可用內(nèi)存值按照每個任務預期占用的最大內(nèi)存值的比例分配給每個任務。3.根據(jù)權利要求2所述的方法,其特征在于,獲取所述可用內(nèi)存值的方法包括: 獲取系統(tǒng)當前全部后臺程序的內(nèi)存占用量; 用所述清理閾值減去所述內(nèi)存占用量得到所述可用內(nèi)存值;或,用所述清理閾值減去所述內(nèi)存占用量,再減去一緩沖值,得到所述可用內(nèi)存值。4.根據(jù)權利要求3所述的方法,其特征在于,所述緩沖值為: 所述清理閾值減去所述內(nèi)存占用量的差乘以預設的緩沖值系數(shù),其中所述緩沖系數(shù)為預設的O?0.5之間的實數(shù)。5.根據(jù)權利要求1所述的方法,其特征在于,每個所述任務包括數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列;所述數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列均包括有多個容量相同的數(shù)據(jù)塊,其中第一個數(shù)據(jù)塊作為頭數(shù)據(jù)塊; 所述前臺程序的任務獲取數(shù)據(jù)的過程包括: 所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲所述任務獲取的數(shù)據(jù),若所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲的數(shù)據(jù)量達到預設的數(shù)據(jù)塊容量,將其移動至所述數(shù)據(jù)輸出隊列尾部,將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊; 所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊輸出數(shù)據(jù),若所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊完成數(shù)據(jù)輸出過程,刪除頭數(shù)據(jù)塊保存的數(shù)據(jù),將其移動至所述數(shù)據(jù)獲取隊列尾部,將所述數(shù)據(jù)輸出隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊; 所述根據(jù)檢測的每個程序任務的運行狀態(tài),為每個任務分配內(nèi)存占用閾值包括: 用所述內(nèi)存占用閾值除以所述數(shù)據(jù)塊容量得到數(shù)量閾值; 所述若檢測到任一所述任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,暫停該任務獲取數(shù)據(jù)的過程,包括: 若檢測所述數(shù)據(jù)輸出隊列上的數(shù)據(jù)塊數(shù)量達到所述數(shù)量閾值,則判定該任務所占用的內(nèi)存值達到其內(nèi)存占用閾值;將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為頭數(shù)據(jù)塊后,暫停向新的頭數(shù)據(jù)塊存儲數(shù)據(jù); 所述若檢測到該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)該任務獲取數(shù)據(jù)的過程,包括: 若檢測到所述數(shù)據(jù)輸出隊列上的數(shù)據(jù)塊數(shù)量未達到所述數(shù)量閾值,則判定該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值;繼續(xù)所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊的數(shù)據(jù)存儲過程。6.根據(jù)權利要求1所述的方法,其特征在于,該方法還包括: 在前臺程序運行的過程中,查找與所述前臺程序關聯(lián)后臺程序,為所述后臺程序添加保護標簽; 所述若檢測到系統(tǒng)內(nèi)存的占用量大于預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理,包括: 將內(nèi)存中未設置保護標簽的后臺程序按照優(yōu)先級由高到低的順序進行排序,按照順序依次終止所述后臺程序,直至被終止的后臺程序的總內(nèi)存占用量大于所述清理閾值。7.根據(jù)權利要求6所述的方法,其特征在于,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序轉入后臺的時間,按照轉入時間由早到晚的順序對后臺程序設置由高到低的優(yōu)先級; 或者所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小,按照占用內(nèi)存由大到小的順序對后臺程序設置由高到低的優(yōu)先級。8.根據(jù)權利要求7所述的方法,其特征在于,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小時,所述按照順序依次終止所述后臺程序,包括: 在對后臺程序執(zhí)行終止操作前,檢測該后臺程序轉入后臺的時間,判斷所述時間是否早于預設的時間閾值;若是,則終止該后臺程序,否則繼續(xù)檢測下一臨時文件;其中所述時間閾值是距所述終止操作發(fā)生的時刻第一時間間隔前的系統(tǒng)時間。9.一種管理程序內(nèi)存占用量的終端,其特征在于,包括: 狀態(tài)檢測單元,用于在前臺程序的任務獲取和輸出數(shù)據(jù)的過程中,檢測程序任務的運行狀態(tài); 占用閾值分配單元,用于根據(jù)檢測的每個程序任務的運行狀態(tài),為每個任務分配內(nèi)存占用閾值; 前臺程序控制單元,用于檢測每個任務的內(nèi)存占用情況,若檢測到任一所述任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,暫停該任務獲取數(shù)據(jù)的過程;若檢測到該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)該任務獲取數(shù)據(jù)的過程; 后臺程序清理單元,若檢測到系統(tǒng)內(nèi)存的占用量達到預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理。10.根據(jù)權利要求9所述的終端,其特征在于,所述運行狀態(tài)包括:完成任務當前任務預期占用的最大內(nèi)存值;所述占用閾值分配單元用于將系統(tǒng)的可用內(nèi)存值按照每個任務預期占用的最大內(nèi)存值的比例分配給每個任務。11.根據(jù)權利要求10所述的終端,其特征在于,所述占用閾值分配單元用于獲取系統(tǒng)當前全部后臺程序的內(nèi)存占用量;用所述清理閾值減去所述內(nèi)存占用量得到所述可用內(nèi)存值;或,用所述清理閾值減去所述內(nèi)存占用量,再減去一緩沖值,得到所述可用內(nèi)存值。12.根據(jù)權利要求11所述的終端,其特征在于,所述緩沖值為: 所述清理閾值減去所述內(nèi)存占用量的差乘以預設的緩沖值系數(shù),其中所述緩沖系數(shù)為預設的O?0.5之間的實數(shù)。13.根據(jù)權利要求9所述的終端,其特征在于,每個所述任務包括數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列;所述數(shù)據(jù)獲取隊列和數(shù)據(jù)輸出隊列均包括多個數(shù)據(jù)塊,其中第一個數(shù)據(jù)塊作為頭數(shù)據(jù)塊; 所述前臺程序控制單元用于控制所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲所述任務獲取的數(shù)據(jù),若所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊存儲的數(shù)據(jù)量達到預設的數(shù)據(jù)塊容量,將其移動至所述數(shù)據(jù)輸出隊列尾部,將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊; 所述前臺程序控制單元還用于控制所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊輸出數(shù)據(jù),若所述數(shù)據(jù)輸出隊列的頭數(shù)據(jù)塊完成數(shù)據(jù)輸出過程,刪除頭數(shù)據(jù)塊保存的數(shù)據(jù),將其移動至所述數(shù)據(jù)獲取隊列尾部,將所述數(shù)據(jù)輸出隊列的下一數(shù)據(jù)塊作為新的頭數(shù)據(jù)塊; 所述占用閾值分配單元用于把所述內(nèi)存占用閾值除以所述數(shù)據(jù)塊容量得到數(shù)量閾值; 所述前臺程序控制單元用于檢測所述數(shù)據(jù)輸出隊列上的數(shù)據(jù)塊數(shù)量是否達到所述數(shù)量閾值,若達到,判定該任務所占用的內(nèi)存值達到其內(nèi)存占用閾值,將所述數(shù)據(jù)獲取隊列的下一數(shù)據(jù)塊作為頭數(shù)據(jù)塊后,暫停向新的頭數(shù)據(jù)塊存儲數(shù)據(jù);若未達到,判定該任務所占用的內(nèi)存值未達到其內(nèi)存占用閾值,繼續(xù)所述數(shù)據(jù)獲取隊列的頭數(shù)據(jù)塊的數(shù)據(jù)存儲過程。14.根據(jù)權利要求9所述的終端,其特征在于,所述后臺程序清理單元還用于在前臺程序運行的過程中,查找與所述前臺程序關聯(lián)的后臺程序,為所述后臺程序添加保護標簽;在檢測到系統(tǒng)內(nèi)存的占用量大于預設的清理閾值,對系統(tǒng)的后臺程序執(zhí)行清理時,所述后臺程序清理單元用于將內(nèi)存中未設置保護標簽的后臺程序按照優(yōu)先級由高到低的順序進行排序,按照順序依次終止所述后臺程序,直至被終止的后臺程序的總內(nèi)存占用量大于所述清理閾值。15.根據(jù)權利要求14所述的終端,其特征在于,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序轉入后臺的時間,按照轉入時間由早到晚的順序對后臺程序設置由高到低的優(yōu)先級; 或者所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小,按照占用內(nèi)存由大到小的順序對后臺程序設置由高到低的優(yōu)先級。16.根據(jù)權利要求15所述的終端,其特征在于,所述后臺程序優(yōu)先級的判定依據(jù)為后臺程序占用內(nèi)存的大小時,所述后臺程序清理單元用于在執(zhí)行終止操作前,檢測后臺程序轉入后臺的時間,判斷所述時間是否早于預設的時間閾值;若是,則終止該后臺程序,否則繼續(xù)檢測下一臨時文件;其中所述時間閾值是距所述刪除操作發(fā)生的時刻第一時間間隔前的系統(tǒng)時間。
【文檔編號】G06F9/445GK105824702SQ201610166699
【公開日】2016年8月3日
【申請日】2016年3月22日
【發(fā)明人】平凱
【申請人】樂視云計算有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1