內(nèi)存管理方法及內(nèi)存管理裝置制造方法
【專利摘要】本發(fā)明涉及一種內(nèi)存管理方法及內(nèi)存管理裝置。該內(nèi)存管理方法包括步驟:接收觸發(fā)命令,并根據(jù)觸發(fā)命令獲取應(yīng)用程序未占用的系統(tǒng)內(nèi)存值以及設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;將應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,根據(jù)比較結(jié)果確定是否對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放;以及對待分配內(nèi)容進(jìn)行系統(tǒng)內(nèi)存分配。本發(fā)明還涉及一種內(nèi)存管理裝置。本發(fā)明的內(nèi)存管理方法及內(nèi)存管理裝置根據(jù)未占用的系統(tǒng)內(nèi)存值以及將被占用的系統(tǒng)內(nèi)存值進(jìn)行系統(tǒng)內(nèi)存釋放的判定,在保證了系統(tǒng)內(nèi)存的高使用率的同時,減少了系統(tǒng)內(nèi)存的釋放次數(shù)。
【專利說明】內(nèi)存管理方法及內(nèi)存管理裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及內(nèi)存管理領(lǐng)域,特別是涉及一種高效的內(nèi)存管理方法及內(nèi)存管理裝置。
【背景技術(shù)】
[0002]在計算機(jī)【技術(shù)領(lǐng)域】,運行中的應(yīng)用程序使用的系統(tǒng)內(nèi)存是共享的,這樣對于具有系統(tǒng)內(nèi)存的設(shè)備,各個應(yīng)用程序之間存在著競爭使用系統(tǒng)內(nèi)存的關(guān)系;特別是在內(nèi)存資源有限的嵌入式設(shè)備上,此現(xiàn)象更為突出。
[0003]當(dāng)系統(tǒng)內(nèi)存較低時,一方面由于設(shè)備需要頻繁地做換頁操作而減慢了設(shè)備的運行速度,進(jìn)而影響應(yīng)用程序的運行速度;另一方面,應(yīng)用程序的系統(tǒng)內(nèi)存分配需求得不到及時滿足,此時,可能會觸發(fā)應(yīng)用程序空指針以及其它邏輯問題。所以,應(yīng)用程序應(yīng)盡量減小對系統(tǒng)內(nèi)存的壓力。同時應(yīng)用程序?qū)ο到y(tǒng)內(nèi)存的壓力主要體現(xiàn)在內(nèi)存峰值上。內(nèi)存峰值是指應(yīng)用程序在一次運行過程中,所占用的內(nèi)存最大值。
[0004]現(xiàn)有的應(yīng)用程序的內(nèi)存管理方法為:各個應(yīng)用程序分別設(shè)定相應(yīng)的系統(tǒng)內(nèi)存閥值,各閥值總和為設(shè)備的內(nèi)存閥值。當(dāng)任一應(yīng)用程序的系統(tǒng)內(nèi)存接近或者超越其系統(tǒng)內(nèi)存閥值時,則釋放與本應(yīng)用程序相應(yīng)的部分系統(tǒng)內(nèi)存,以確保該應(yīng)用程序的系統(tǒng)內(nèi)存不超過其系統(tǒng)內(nèi)存閥值。
[0005]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:當(dāng)某一應(yīng)用程序使用的系統(tǒng)內(nèi)存接近或超越其系統(tǒng)內(nèi)存閾值時,可能其他應(yīng)用程序所占用的系統(tǒng)內(nèi)存很低,設(shè)備的總系統(tǒng)內(nèi)存占用也比較低,此時進(jìn)行設(shè)備系統(tǒng)內(nèi)存的釋放,會導(dǎo)致不能充分利用該設(shè)備的系統(tǒng)內(nèi)存。且不同的應(yīng)用程序設(shè)定不同的系統(tǒng)內(nèi)存閾值可能導(dǎo)致某一時間段內(nèi)設(shè)備的系統(tǒng)內(nèi)存釋放次數(shù)過多,影響設(shè)備的運行性能。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于提供一種高效的內(nèi)存管理方法及內(nèi)存管理裝置,以解決現(xiàn)有的內(nèi)存管理方法及內(nèi)存管理裝置的系統(tǒng)內(nèi)存的使用率較低以及系統(tǒng)內(nèi)存的釋放次數(shù)過多的技術(shù)問題。
[0007]為解決上述問題,本發(fā)明提供的技術(shù)方案如下:
[0008]本發(fā)明實施例涉及一種內(nèi)存管理方法,其包括步驟:
[0009]接收觸發(fā)命令,并根據(jù)所述觸發(fā)命令獲取應(yīng)用程序未占用的系統(tǒng)內(nèi)存值以及設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;
[0010]將所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,根據(jù)比較結(jié)果確定是否對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放;以及
[0011]對所述待分配內(nèi)容進(jìn)行系統(tǒng)內(nèi)存分配。
[0012]本發(fā)明實施例還涉及一種內(nèi)存管理裝置,其包括:
[0013]獲取模塊,用于接收觸發(fā)命令,并根據(jù)所述觸發(fā)命令獲取應(yīng)用程序未占用的系統(tǒng)內(nèi)存值以及設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;
[0014]內(nèi)存釋放模塊,用于將所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,根據(jù)比較結(jié)果確定是否對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放;以及
[0015]分配模塊,用于對所述待分配內(nèi)容進(jìn)行系統(tǒng)內(nèi)存分配。
[0016]相較于現(xiàn)有技術(shù)的內(nèi)存管理方法及內(nèi)存管理裝置,本發(fā)明的內(nèi)存管理方法及內(nèi)存管理裝置根據(jù)未占用的系統(tǒng)內(nèi)存值以及將被占用的系統(tǒng)內(nèi)存值進(jìn)行系統(tǒng)內(nèi)存釋放的判定,在保證了系統(tǒng)內(nèi)存的高使用率的同時,減少了系統(tǒng)內(nèi)存的釋放次數(shù);解決了現(xiàn)有的內(nèi)存管理方法及內(nèi)存管理裝置的系統(tǒng)內(nèi)存的使用率較低以及系統(tǒng)內(nèi)存的釋放次數(shù)過多的技術(shù)問題。
【專利附圖】
【附圖說明】
[0017]圖1為本發(fā)明的內(nèi)存管理方法的第一優(yōu)選實施例的流程圖;
[0018]圖2為本發(fā)明的內(nèi)存管理方法的第二優(yōu)選實施例的流程圖;
[0019]圖3為本發(fā)明的內(nèi)存管理方法的第三優(yōu)選實施例的流程圖;
[0020]圖4為本發(fā)明的內(nèi)存管理裝置的第一優(yōu)選實施例的結(jié)構(gòu)示意圖;
[0021]圖5為本發(fā)明的內(nèi)存管理裝置的第二優(yōu)選實施例的結(jié)構(gòu)示意圖;
[0022]圖6為本發(fā)明的內(nèi)存管理裝置的第三優(yōu)選實施例的結(jié)構(gòu)示意圖;
[0023]其中,附圖標(biāo)記說明如下:
[0024]41、獲取模塊;
[0025]42、內(nèi)存釋放模塊;
[0026]43、分配模塊;
[0027]51、觸發(fā)命令發(fā)出模塊;
[0028]52、檢查點設(shè)置模塊。
【具體實施方式】
[0029]以下各實施例的說明是參考附加的圖式,用以例示本發(fā)明可用以實施的特定實施例。
[0030]請參照圖1,圖1為本發(fā)明的內(nèi)存管理方法的第一優(yōu)選實施例的流程圖。本優(yōu)選實施例的內(nèi)存管理方法包括,
[0031]步驟101,接收觸發(fā)命令,并根據(jù)觸發(fā)命令獲取應(yīng)用程序未占用的系統(tǒng)內(nèi)存值以及設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;
[0032]步驟102,將應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,根據(jù)比較結(jié)果確定是否對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放;
[0033]步驟103,對待分配內(nèi)容進(jìn)行系統(tǒng)內(nèi)存分配;
[0034]本優(yōu)選實施例的內(nèi)存管理方法結(jié)束于步驟103。
[0035]本優(yōu)選實施例的內(nèi)存管理方法根據(jù)觸發(fā)命令獲取未占用的系統(tǒng)內(nèi)存值以及將被占用的系統(tǒng)內(nèi)存值(即設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值),并根據(jù)未占用的系統(tǒng)內(nèi)存值以及將被占用的系統(tǒng)內(nèi)存值進(jìn)行系統(tǒng)內(nèi)存釋放的判定,這樣可在保證了系統(tǒng)內(nèi)存的高使用率的同時,減少系統(tǒng)內(nèi)存的釋放次數(shù),提高設(shè)備的運行性能。
[0036]請參照圖2,圖2為本發(fā)明的內(nèi)存管理方法的第二優(yōu)選實施例的流程圖。本優(yōu)選實施例的內(nèi)存管理方法包括,
[0037]步驟201,使用計時器或應(yīng)用程序中的檢查點發(fā)出觸發(fā)命令;
[0038]步驟202,接收觸發(fā)命令,并根據(jù)觸發(fā)命令獲取應(yīng)用程序未占用的系統(tǒng)內(nèi)存值以及設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;
[0039]步驟203,判斷應(yīng)用程序未占用的系統(tǒng)內(nèi)存值是否小于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;
[0040]步驟204,對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放,使應(yīng)用程序未占用的系統(tǒng)內(nèi)存值大于等于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;
[0041]步驟205,對應(yīng)用程序不進(jìn)行系統(tǒng)內(nèi)存釋放;
[0042]步驟206,對待分配內(nèi)容進(jìn)行系統(tǒng)內(nèi)存分配;
[0043]本優(yōu)選實施例的內(nèi)存管理方法結(jié)束于步驟206。
[0044]下面詳細(xì)說明本優(yōu)選實施例的內(nèi)存管理方法的各步驟的具體流程。
[0045]在步驟201中,需要通過一定的方法觸發(fā)檢查邏輯(即觸發(fā)命令)。在本優(yōu)選實施例可通過計時器定時生成觸發(fā)命令,也可在應(yīng)用程序中的相應(yīng)位置設(shè)置相應(yīng)的檢查點,通過檢查點來生成觸發(fā)命令。觸發(fā)命令的生成位置一般設(shè)置在應(yīng)用程序?qū)⑹褂幂^大的系統(tǒng)內(nèi)存的位置,即在應(yīng)用程序的系統(tǒng)內(nèi)存分配段之前設(shè)置檢查點或計時器的觸發(fā)點,這樣可以確保應(yīng)用程序不會因為無法調(diào)用較大容量的內(nèi)存導(dǎo)致應(yīng)用程序的運行不暢,應(yīng)用程序也不會頻繁的進(jìn)行內(nèi)存釋放操作而影響設(shè)備的運行性能。
[0046]隨后來到步驟202。
[0047]在步驟202中,接收步驟201中計時器或檢查點生成的觸發(fā)命令,并根據(jù)該觸發(fā)命令獲取應(yīng)用程序未占用的系統(tǒng)內(nèi)存值以及設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值。這里的應(yīng)用程序未占用的系統(tǒng)內(nèi)存值可以直接獲取,也可通過獲取應(yīng)用程序占用的系統(tǒng)內(nèi)存值以及應(yīng)用程序占用的系統(tǒng)內(nèi)存閾值來獲取,即應(yīng)用程序未占用的系統(tǒng)內(nèi)存值=應(yīng)用程序占用的系統(tǒng)內(nèi)存閾值-應(yīng)用程序占用的系統(tǒng)內(nèi)存值。設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值通過計算未來一定時間內(nèi)應(yīng)用程序?qū)⒁褂玫南到y(tǒng)內(nèi)存來獲取,這個設(shè)定時間可根據(jù)用戶的具體需要進(jìn)行設(shè)定。
[0048]隨后來到步驟203。
[0049]在步驟203中,將應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,判斷應(yīng)用程序未占用的系統(tǒng)內(nèi)存值是否小于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,如應(yīng)用程序未占用的系統(tǒng)內(nèi)存值小于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,則轉(zhuǎn)到步驟204。如應(yīng)用程序未占用的系統(tǒng)內(nèi)存值大于等于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,則轉(zhuǎn)到步驟205。
[0050]在步驟204中,應(yīng)用程序未占用的系統(tǒng)內(nèi)存值小于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,即應(yīng)用程序即將使用的系統(tǒng)內(nèi)存量大于應(yīng)用程序未占用的系統(tǒng)內(nèi)存值,如不釋放系統(tǒng)內(nèi)存,可能會導(dǎo)致應(yīng)用程序運行不暢甚至運行中斷,因此這時應(yīng)對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存的釋放,并使得應(yīng)用程序未占用的系統(tǒng)內(nèi)存值大于等于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,以保證應(yīng)用程序的正常運行。這里需要注意的是,為了保證系統(tǒng)內(nèi)存較高的使用率,可根據(jù)系統(tǒng)內(nèi)存中內(nèi)容的重要性,對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放(即重要度較低的內(nèi)容優(yōu)先釋放),并使得應(yīng)用程序未占用的系統(tǒng)內(nèi)存值等于或略大于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值。
[0051]在步驟205中,應(yīng)用程序未占用的系統(tǒng)內(nèi)存值大于等于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,則不進(jìn)行系統(tǒng)內(nèi)存的釋放。
[0052]隨后來到步驟206。
[0053]在步驟206中,由于步驟203至步驟205中已經(jīng)對空閑的系統(tǒng)內(nèi)存容量進(jìn)行了判定以及釋放,因此在本步驟中可直接對應(yīng)用程序中的待分配內(nèi)容進(jìn)行系統(tǒng)內(nèi)存的分配。
[0054]這樣即完成了整個設(shè)備的內(nèi)存管理過程。
[0055]本優(yōu)選實施例的內(nèi)存管理方法通過計時器或應(yīng)用程序中的檢查點發(fā)出觸發(fā)命令,并根據(jù)觸發(fā)命令獲取未占用的系統(tǒng)內(nèi)存值以及將被占用的系統(tǒng)內(nèi)存值;同時通過將未占用的系統(tǒng)內(nèi)存值以及將被占用的系統(tǒng)內(nèi)存值進(jìn)行比較,對系統(tǒng)內(nèi)存的釋放進(jìn)行判定,保證了系統(tǒng)內(nèi)存的高使用率,同時減少了系統(tǒng)內(nèi)存的釋放次數(shù),提高了設(shè)備的運行性能。
[0056]請參照圖3,圖3為本發(fā)明的內(nèi)存管理方法的第三優(yōu)選實施例的流程圖。本優(yōu)選實施例的內(nèi)存管理方法包括:
[0057]步驟301,使用計時器或應(yīng)用程序中的檢查點發(fā)出觸發(fā)命令;
[0058]步驟302,接收觸發(fā)命令,并根據(jù)觸發(fā)命令獲取應(yīng)用程序未占用的系統(tǒng)內(nèi)存值以及設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;
[0059]步驟303,判斷應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積是否小于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;
[0060]步驟304,對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放,使應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積大于等于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;
[0061]步驟305,對應(yīng)用程序不進(jìn)行系統(tǒng)內(nèi)存釋放;
[0062]步驟306,對待分配內(nèi)容進(jìn)行系統(tǒng)內(nèi)存分配;
[0063]本優(yōu)選實施例的內(nèi)存管理方法結(jié)束于步驟306。
[0064]本優(yōu)選實施例的步驟301與上述的內(nèi)存管理方法的第二優(yōu)選實施例的步驟201中的描述相同或相似,具體請參見上述內(nèi)存管理方法的第二優(yōu)選實施例的步驟201中的相關(guān)描述。
[0065]本優(yōu)選實施例的步驟302與上述的內(nèi)存管理方法的第二優(yōu)選實施例的步驟202中的描述相同或相似,具體請參見上述內(nèi)存管理方法的第二優(yōu)選實施例的步驟202中的相關(guān)描述。
[0066]在步驟303中,將應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,并設(shè)置有設(shè)定系數(shù);如應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積小于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,則轉(zhuǎn)到步驟304。如應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積大于等于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,則轉(zhuǎn)到步驟305。
[0067]在步驟304中,應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積小于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,即應(yīng)用程序即將使用的系統(tǒng)內(nèi)存量大于應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積,如不釋放系統(tǒng)內(nèi)存,可能會導(dǎo)致應(yīng)用程序運行不暢甚至運行中斷,因此這時應(yīng)對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存的釋放,并使得應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積大于等于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,保證應(yīng)用程序的正常運行。這里需要注意的是,為了保證系統(tǒng)內(nèi)存的較高的使用率,可根據(jù)系統(tǒng)內(nèi)存中內(nèi)容的重要性,對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放,并使得應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積等于或略大于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值。
[0068]在步驟305中,應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積大于等于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,則不進(jìn)行系統(tǒng)內(nèi)存的釋放。
[0069]隨后來到步驟306。
[0070]本步驟與上述內(nèi)存管理方法的第二優(yōu)選實施例的步驟206的區(qū)別在于,設(shè)置有對設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行調(diào)整的設(shè)定系數(shù),因為此處的設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值為一估算值,可能會有一定的誤差,因此通過設(shè)定系數(shù)的設(shè)置可使最終的系統(tǒng)內(nèi)存釋放量更加的準(zhǔn)確,而不會導(dǎo)致系統(tǒng)內(nèi)存釋放過多或系統(tǒng)內(nèi)存釋放過少。當(dāng)設(shè)定系數(shù)為I時,本優(yōu)選實施例的方案與第二優(yōu)選實施例的方案完全相同,當(dāng)設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值估算的過大時,可以設(shè)定大于I的設(shè)定系數(shù),以相應(yīng)的增大應(yīng)用程序未占用的系統(tǒng)內(nèi)存值的數(shù)值;當(dāng)設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值估算的過小時,則需要設(shè)定小于I的設(shè)定系數(shù),以減小應(yīng)用程序未占用的系統(tǒng)內(nèi)存值的數(shù)值。該設(shè)定系數(shù)的具體數(shù)值可根據(jù)用戶的需要進(jìn)行設(shè)置。
[0071]本優(yōu)選實施例的步驟306與上述的內(nèi)存管理方法的第二優(yōu)選實施例的步驟206中的描述相同或相似,具體請參見上述內(nèi)存管理方法的第二優(yōu)選實施例的步驟206中的相關(guān)描述。
[0072]這樣即完成了整個設(shè)備的內(nèi)存管理過程。
[0073]本優(yōu)選實施例在第二優(yōu)選實施例的基礎(chǔ)上還設(shè)置有設(shè)定系數(shù)對估算的設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行調(diào)整,使得系統(tǒng)內(nèi)存的釋放更加準(zhǔn)確,進(jìn)一步保證了系統(tǒng)內(nèi)存的高使用率,同時減少了系統(tǒng)內(nèi)存的釋放次數(shù),提高了設(shè)備的運行性能。
[0074]本發(fā)明還涉及一種內(nèi)存管理裝置,請參照圖4,圖4為本發(fā)明的內(nèi)存管理裝置的第一優(yōu)選實施例的結(jié)構(gòu)示意圖。本優(yōu)選實施例的內(nèi)存管理裝置包括獲取模塊41、內(nèi)存釋放模塊42以及分配模塊43。獲取模塊41用于接收觸發(fā)命令,并根據(jù)觸發(fā)命令獲取應(yīng)用程序未占用的系統(tǒng)內(nèi)存值以及設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;內(nèi)存釋放模塊42用于將應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,根據(jù)比較結(jié)果確定是否對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放;分配模塊43用于對待分配內(nèi)容進(jìn)行系統(tǒng)內(nèi)存分配。
[0075]本優(yōu)選實施例的內(nèi)存管理裝置的具體工作原理與上述的內(nèi)存管理方法的第一優(yōu)選實施例中的描述相同或相似,具體請參見上述內(nèi)存管理方法的第一優(yōu)選實施例中的相關(guān)描述。
[0076]本優(yōu)選實施例的內(nèi)存管理裝置根據(jù)觸發(fā)命令獲取未占用的系統(tǒng)內(nèi)存值以及將被占用的系統(tǒng)內(nèi)存值(即設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值),并根據(jù)未占用的系統(tǒng)內(nèi)存值以及將被占用的系統(tǒng)內(nèi)存值進(jìn)行系統(tǒng)內(nèi)存釋放的判定,這樣可在保證了系統(tǒng)內(nèi)存的高使用率的同時,減少系統(tǒng)內(nèi)存的釋放次數(shù),提高設(shè)備的運行性能。
[0077]請參照圖5,圖5為本發(fā)明的內(nèi)存管理裝置的第二優(yōu)選實施例的結(jié)構(gòu)示意圖。本優(yōu)選實施例與第一優(yōu)選實施例的區(qū)別在于,該內(nèi)存管理裝置還包括觸發(fā)命令發(fā)出模塊51以及檢查點設(shè)置模塊52。觸發(fā)命令發(fā)出模塊51用于使用計時器或應(yīng)用程序中的檢查點發(fā)出觸發(fā)命令,檢查點設(shè)置模塊52用于在應(yīng)用程序的系統(tǒng)內(nèi)存分配段之前設(shè)置檢查點。
[0078]本優(yōu)選實施例的內(nèi)存管理裝置使用時,觸發(fā)命令發(fā)出模塊51可通過計時器定時生成觸發(fā)命令,或使用檢查點設(shè)置模塊52在應(yīng)用程序中的相應(yīng)位置(一般為系統(tǒng)內(nèi)存分配段之前)設(shè)置相應(yīng)的檢查點,通過檢查點來生成觸發(fā)命令。隨后獲取模塊41接收觸發(fā)命令發(fā)出模塊51的觸發(fā)命令,并根據(jù)該觸發(fā)命令獲取應(yīng)用程序未占用的系統(tǒng)內(nèi)存值以及設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值。然后內(nèi)存釋放模塊42將應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,如應(yīng)用程序未占用的系統(tǒng)內(nèi)存值小于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,則可根據(jù)系統(tǒng)內(nèi)存中內(nèi)容的重要性,對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放,并使得應(yīng)用程序未占用的系統(tǒng)內(nèi)存值大于等于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;如應(yīng)用程序未占用的系統(tǒng)內(nèi)存值大于等于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,則不進(jìn)行系統(tǒng)內(nèi)存的釋放。最后分配模塊43直接對應(yīng)用程序中的待分配內(nèi)容進(jìn)行系統(tǒng)內(nèi)存分配。
[0079]本優(yōu)選實施例的內(nèi)存管理裝置的具體工作原理與上述的內(nèi)存管理方法的第二優(yōu)選實施例中的描述相同或相似,具體請參見上述內(nèi)存管理方法的第二優(yōu)選實施例中的相關(guān)描述。
[0080]本優(yōu)選實施例的內(nèi)存管理裝置通過計時器或應(yīng)用程序中的檢查點發(fā)出觸發(fā)命令,并根據(jù)觸發(fā)命令獲取未占用的系統(tǒng)內(nèi)存值以及將被占用的系統(tǒng)內(nèi)存值;同時通過將未占用的系統(tǒng)內(nèi)存值以及將被占用的系統(tǒng)內(nèi)存值進(jìn)行比較,對系統(tǒng)內(nèi)存的釋放進(jìn)行判定,保證了系統(tǒng)內(nèi)存的高使用率,同時減少了系統(tǒng)內(nèi)存的釋放次數(shù),提高了設(shè)備的運行性能。、
[0081]請參照圖6,圖6為本發(fā)明的內(nèi)存管理裝置的第三優(yōu)選實施例的結(jié)構(gòu)示意圖。本優(yōu)選實施例與第二優(yōu)選實施例的區(qū)別在于,內(nèi)存釋放模塊42具體用于當(dāng)應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積小于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值時,確定對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放,使應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積大于等于所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值。
[0082]具體實現(xiàn)時,內(nèi)存釋放模塊42將應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,并設(shè)置有設(shè)定系數(shù);如應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積小于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,則可根據(jù)系統(tǒng)內(nèi)存中內(nèi)容的重要性,對應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放,并使得應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積等于或略大于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;如應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積大于等于設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值,則不進(jìn)行系統(tǒng)內(nèi)存的釋放。
[0083]本優(yōu)選實施例的內(nèi)存管理裝置的具體工作原理與上述的內(nèi)存管理方法的第三優(yōu)選實施例中的描述相同或相似,具體請參見上述內(nèi)存管理方法的第三優(yōu)選實施例中的相關(guān)描述。
[0084]本優(yōu)選實施例在第二優(yōu)選實施例的基礎(chǔ)上還設(shè)置有對估算的設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行調(diào)整的設(shè)定系數(shù),使得系統(tǒng)內(nèi)存的釋放更加準(zhǔn)確,進(jìn)一步保證了系統(tǒng)內(nèi)存的高使用率,同時減少了系統(tǒng)內(nèi)存的釋放次數(shù),提高了設(shè)備的運行性能。[0085]本發(fā)明的內(nèi)存管理方法及內(nèi)存管理裝置根據(jù)未占用的系統(tǒng)內(nèi)存值以及將被占用的系統(tǒng)內(nèi)存值進(jìn)行系統(tǒng)內(nèi)存釋放的判定,在保證了系統(tǒng)內(nèi)存的高使用率的同時,減少了系統(tǒng)內(nèi)存的釋放次數(shù);解決了現(xiàn)有的內(nèi)存管理方法及內(nèi)存管理裝置的系統(tǒng)內(nèi)存的使用率較低以及系統(tǒng)內(nèi)存的釋放次數(shù)過多的技術(shù)問題。
[0086]綜上所述,雖然本發(fā)明已以優(yōu)選實施例揭露如上,但上述優(yōu)選實施例并非用以限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與潤飾,因此本發(fā)明的保護(hù)范圍以權(quán)利要求界定的范圍為準(zhǔn)。
【權(quán)利要求】
1.一種內(nèi)存管理方法,其特征在于,包括步驟: 接收觸發(fā)命令,并根據(jù)所述觸發(fā)命令獲取應(yīng)用程序未占用的系統(tǒng)內(nèi)存值以及設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值; 將所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,根據(jù)比較結(jié)果確定是否對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放;以及 對所述待分配內(nèi)容進(jìn)行系統(tǒng)內(nèi)存分配。
2.根據(jù)權(quán)利要求1所述的內(nèi)存管理方法,其特征在于,使用計時器或所述應(yīng)用程序中的檢查點發(fā)出所述觸發(fā)命令。
3.根據(jù)權(quán)利要求2所述的內(nèi)存管理方法,其特征在于,在所述應(yīng)用程序的系統(tǒng)內(nèi)存分配段之前設(shè)置所述檢查點。
4.根據(jù)權(quán)利要求1所述的內(nèi)存管理方法,其特征在于,所述將所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,根據(jù)比較結(jié)果確定是否對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放的步驟包括: 當(dāng)所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值小于所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值時,確定對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放,使所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值大于等于所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;否則對所述應(yīng)用程序不進(jìn)行內(nèi)存釋放。
5.根據(jù)權(quán)利要求1所述的內(nèi)存管理方法,其特征在于,所述將所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,根據(jù)比較結(jié)果確定是否對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放的步驟包括: 當(dāng)所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積小于所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值時,確定對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放,使所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與所述設(shè)定系數(shù)的乘積大于等于所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值;否則對所述應(yīng)用程序不進(jìn)行內(nèi)存釋放。
6.根據(jù)權(quán)利要求4或5所述的內(nèi)存管理方法,其特征在于,根據(jù)所述系統(tǒng)內(nèi)存中內(nèi)容的重要性,對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放。
7.—種內(nèi)存管理裝置,其特征在于,包括: 獲取模塊,用于接收觸發(fā)命令,并根據(jù)所述觸發(fā)命令獲取應(yīng)用程序未占用的系統(tǒng)內(nèi)存值以及設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值; 內(nèi)存釋放模塊,用于將所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值進(jìn)行比較,根據(jù)比較結(jié)果確定是否對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放;以及 分配模塊,用于對所述待分配內(nèi)容進(jìn)行系統(tǒng)內(nèi)存分配。
8.根據(jù)權(quán)利要求7所述的內(nèi)存管理裝置,其特征在于,所述內(nèi)存管理裝置還包括: 觸發(fā)命令發(fā)出模塊,用于使用計時器或所述應(yīng)用程序中的檢查點發(fā)出所述觸發(fā)命令。
9.根據(jù)權(quán)利要求8所述的內(nèi)存管理裝置,其特征在于,所述內(nèi)存管理裝置還包括: 檢查點設(shè)置模塊,用于在所述應(yīng)用程序的系統(tǒng)內(nèi)存分配段之前設(shè)置所述檢查點。
10.根據(jù)權(quán)利要求7所述的內(nèi)存管理裝置,其特征在于,所述內(nèi)存釋放模塊具體用于, 當(dāng)所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值小于所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值時,確定對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放,使所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值大于等于所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值。
11.根據(jù)權(quán)利要求7所述的內(nèi)存管理裝置,其特征在于,所述內(nèi)存釋放模塊具體用于, 當(dāng)所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與設(shè)定系數(shù)的乘積小于所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值時,確定對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放,使所述應(yīng)用程序未占用的系統(tǒng)內(nèi)存值與所述設(shè)定系數(shù)的乘積大于等于所述設(shè)定時間內(nèi)的待分配內(nèi)容占用的系統(tǒng)內(nèi)存值。
12.根據(jù)權(quán)利要求10或11所述的內(nèi)存管理裝置,其特征在于,所述內(nèi)存釋放模塊根據(jù)所述系統(tǒng)內(nèi)存中 內(nèi)容的重要性,對所述應(yīng)用程序進(jìn)行系統(tǒng)內(nèi)存釋放。
【文檔編號】G06F12/02GK104008062SQ201310059055
【公開日】2014年8月27日 申請日期:2013年2月25日 優(yōu)先權(quán)日:2013年2月25日
【發(fā)明者】牛東升 申請人:騰訊科技(深圳)有限公司