專利名稱:一種混合內存分配的方法、系統及瀏覽器的制作方法
技術領域:
本發明涉及內存分配領域,尤其涉及一種混合內存分配的方法、系統及瀏覽器。
背景技術:
瀏覽器是指可以顯示網頁服務器或者文件系統的HTML文件內容,并讓用戶與這些文件交互的一種軟件。一般瀏覽器需要獨占一定量的內存才能夠正常運行,但是在實際的某些項目中,比如嵌入式項目,內存比較緊張,無法提供給瀏覽器大塊的獨占內存。
發明內容
本發明實施例在于提供一種混合內存分配的方法、系統及瀏覽器,利用混合內存分配機制,提高內存使用率。本發明是這樣實現的,一種混合內存分配的方法,包括
配置瀏覽器獨占內存,配置瀏覽器內存使用的閾值;
判斷瀏覽器申請的內存大小是否超過所述瀏覽器內存使用的閾值;
若超過所述瀏覽器內存使用的閾值,從系統中非瀏覽器獨占的內存中分配所述瀏覽器申請的內存;
釋放所述瀏覽器申請的內存,其他模塊重新使用。較優的,所述判斷瀏覽器申請的內存大小是否超過所述瀏覽器內存使用的閾值之后,還包括
若沒有超過所述瀏覽器內存使用的閾值,從所述瀏覽器獨占內存中分配所述瀏覽器申請的內存;
釋放所述瀏覽器申請的內存,所述瀏覽器獨占內存回收釋放的內存。較優的,所述配置瀏覽器獨占內存,配置瀏覽器內存使用的閾值,還包括
配置瀏覽器能使用的最大內存,所述瀏覽器能使用的最大內存為瀏覽器申請的系統內存最大值與所述瀏覽器獨占內存之和。較優的,所述若超過所述瀏覽器內存使用的閾值,從系統中非瀏覽器獨占的內存中分配所述瀏覽器申請的內存,具體還包括
判斷所述瀏覽器申請的內存與累積未釋放內存之和是否大于所述瀏覽器申請的系統內存最大值,若小于或等于,從系統中非瀏覽器獨占的內存中分配所述瀏覽器申請的內存。較優的,還包括,若所述瀏覽器申請的內存與累積未釋放內存之和大于所述瀏覽器申請的系統內存最大值,則結束所述瀏覽器申請的內存的申請。本發明的另一目的在于一種混合內存分配的系統,包括
配置模塊,用于配置瀏覽器獨占內存,配置瀏覽器內存使用的閾值;
判斷模塊,用于判斷瀏覽器申請的內存大小是否超過所述瀏覽器內存使用的閾值;
分配模塊,用于若超過所述瀏覽器內存使用的閾值,從系統中非瀏覽器獨占的內存中分配所述瀏覽器申請的內存;釋放模塊,用于釋放所述瀏覽器申請的內存,其他模塊重新使用。較優的,還包括
所述分配模塊,還用于若沒有超過所述瀏覽器內存使用的閾值,從所述瀏覽器獨占內存中分配所述瀏覽器申請的內存;
所述釋放模塊,還用于釋放所述瀏覽器申請的內存,所述瀏覽器獨占內存回收釋放的內存。較優的,所述配置模塊,還用于配置瀏覽器能使用的最大內存,所述瀏覽器能使用的最大內存為瀏覽器申請的系統內存最大值與所述瀏覽器獨占內存之和。較優的,還包括,當瀏覽器申請的內存大小超過所述瀏覽器內存使用的閾值時, 所述判斷模塊,還用于判斷所述瀏覽器申請的內存與累積未釋放內存之和是否大于所
述瀏覽器申請的系統內存最大值;
所述分配模塊,還用于若所述瀏覽器申請的內存與累積未釋放內存之和小于或等于所述瀏覽器申請的系統內存最大值,從系統中非瀏覽器獨占的內存中分配所述瀏覽器申請的內存。本發明的再一目的在于提供一種瀏覽器,包括所述瀏覽器包括上述權利要求任一項所述的混合內存分配的系統。實施上述實施例,使用混合內存分配,既可以利用瀏覽器獨占內存使用高效、節約的內存管理策略,又可以最大限度避免瀏覽器獨占內存給系統造成的內存壓力,使瀏覽器不因產生大量內存碎片而浪費內存,提高內存申請速度。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖I是本發明實施例的一種混合內存分配的方法流程示意 圖2是本發明一種混合內存分配的方法的另一實施例的流程示意 圖3是本發明一種混合內存分配的方法的另一實施例的流程示意 圖4是本發明實施例的一種混合內存分配的系統的結構示意圖。
具體實施例方式為了使本發明所要解決的技術問題、技術方案及有益效果更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。請參閱圖I示出的本發明實施例的一種混合內存分配的方法流程示意圖,包括 步驟SlOl :配置瀏覽器獨占內存,配置瀏覽器內存使用的閾值。具體的,例如一個系統整個內存為256M,在瀏覽器初始化之前,配置瀏覽器獨占內存為4M,瀏覽器開始初始化時,即開始分配瀏覽器獨占內存4M,則系統中非瀏覽器獨占內存的大小為252M, —般而言,瀏覽器獨占內存不小于3M。并配置瀏覽器內存使用的閾值,一般配置閾值為4k字節。
步驟S102 :判斷瀏覽器申請的內存大小是否超過瀏覽器內存使用的閾值。具體的,用戶在使用瀏覽器時,會單次動態申請內存,比如用戶點擊瀏覽器上“返回”鍵時,瀏覽器就會申請內存來執行該命令,有些命令占用的內存比較小,有些命令占用的內存較大。步驟S103 :若超過瀏覽器內存使用的閾值,從系統中非瀏覽器獨占的內存中分配瀏覽器申請的內存。具體的,當瀏覽器申請的內存為IM時,大于瀏覽器內存使用的閾值4K,則從系統中非瀏覽器獨占的內存252M中來分配IM 提供給瀏覽器使用。步驟S104 :釋放瀏覽器申請的內存,其他模塊重新使用。具體的,當瀏覽器完成命令后,會釋放申請的內存1M,系統中其他的模塊來重新使用。實施上述實施例,使用混合內存分配,既可以利用瀏覽器獨占內存使用高效、節約的內存管理策略,又可以最大限度避免瀏覽器獨占內存給系統造成的內存壓力,使瀏覽器不因產生大量內存碎片而浪費內存,提高內存申請速度。下面結合圖2示出的本發明一種混合內存分配的方法的另一實施例的流程示意圖,方法步驟包括
步驟S201 :配置瀏覽器獨占內存,配置瀏覽器內存使用的閾值。具體的,例如一個系統整個內存為256M,在瀏覽器初始化之前,配置瀏覽器獨占內存為4M,貝U系統中非瀏覽器獨占內存的大小為252M, —般而言,瀏覽器獨占內存不小于3M。并配置瀏覽器內存使用的閾值,一般配置閾值為4k字節。步驟S202 :判斷瀏覽器申請的內存大小是否超過瀏覽器內存使用的閾值,如果沒超過,進入步驟S203 ;如果超過,進入步驟S205。具體的,用戶在使用瀏覽器時,會單次動態申請內存,比如用戶點擊瀏覽器上“返回”鍵時,瀏覽器就會申請內存來執行該命令,有些命令占用的內存比較小,有些命令占用的內存較大。步驟S203 :從瀏覽器獨占內存中分配。具體的,當瀏覽器申請的內存為3K時,小于瀏覽器內存使用的閾值4K,則從瀏覽器獨占的內存4M中來分配3K提供給瀏覽器使用。步驟S204 :釋放內存,瀏覽器獨占內存回收該內存。具體的,當瀏覽器完成命令后,會釋放申請的內存3K,瀏覽器獨占內存會回收3K內存。步驟S205 :從系統中非瀏覽器獨占的內存中分配瀏覽器申請的內存。具體的,當瀏覽器申請的內存為IM時,大于瀏覽器內存使用的閾值4K,則從系統中非瀏覽器獨占的內存252M中來分配IM提供給瀏覽器使用。步驟S206 :釋放內存,其他模塊重新使用。具體的,當瀏覽器完成命令后,會釋放申請的內存1M,系統中其他的模塊來重新使用。步驟S207:結束。實施上述實施例,使用混合內存分配,既可以利用瀏覽器獨占內存使用高效、節約的內存管理策略,又可以最大限度避免瀏覽器獨占內存給系統造成的內存壓力,使瀏覽器不因產生大量內存碎片而浪費內存,提高內存申請速度。下面結合圖3示出的本發明一種混合內存分配的方法的另一實施例的流程示意圖,方法步驟包括
步驟S301 :配置瀏覽器獨占內存,配置瀏覽器內存使用的閾值,配置瀏覽器能使用的最大內存。具體的,例如一個系統整個內存為256M,在瀏覽器初始化之前,配置瀏覽器獨占內存為4M,貝U系統中非瀏覽器獨占內存的大小為252M, —般而言,瀏覽器獨占內存不小于3M。并配置瀏覽器內存使用的閾值,一般配置閾值為4k字節。瀏覽器能使用的最大內存為瀏覽器申請的系統內存最大值與瀏覽器獨占內存之和,如果配置瀏覽器能使用的最大內存為100M,則代表瀏覽器申請的系統內存最大值為100M-4M=96M。步驟S302 :判斷瀏覽器申請的內存大小是否超過瀏覽器內存使用的閾值,如果沒
超過,進入步驟S303 ;如果超過,進入步驟S305。具體的,用戶在使用瀏覽器時,會單次動態申請內存,比如用戶點擊瀏覽器上“返回”鍵時,瀏覽器就會申請內存來執行該命令,有些命令占用的內存比較小,有些命令占用的內存較大。步驟S303 :從瀏覽器獨占內存中分配。具體的,當瀏覽器申請的內存為3K時,小于瀏覽器內存使用的閾值4K,則從瀏覽器獨占的內存4M中來分配3K提供給瀏覽器使用。步驟S304 :釋放內存,瀏覽器獨占內存回收該內存。具體的,當瀏覽器完成命令后,會釋放申請的內存3K,瀏覽器獨占內存會回收3K內存。步驟S305 :判斷瀏覽器申請的內存與累積未釋放內存之和是否大于瀏覽器申請的系統內存最大值,若大于,進入步驟S308 ;若小于或等于,進入步驟S306。具體的,瀏覽器申請的系統內存最大值為瀏覽器能使用的最大內存與瀏覽器獨占內存之差。因為每次申請的內存都有自己的生命周期,各不相同,所以系統內存中海存在累積未釋放內存。步驟S306 :從系統中非瀏覽器獨占的內存中分配瀏覽器申請的內存。具體的,當瀏覽器申請的內存為1M,累積未釋放內存為4M時,兩者之和為5M,小于瀏覽器能使用的最大內存與瀏覽器獨占內存之差96M,則從系統中非瀏覽器獨占的內存252M中來分配IM提供給瀏覽器使用。步驟S307 :釋放內存,其他模塊重新使用。具體的,當瀏覽器完成命令后,會釋放申請的內存1M,系統中其他的模塊來重新使用。步驟S308:結束。實施上述實施例,使用混合內存分配,既可以利用瀏覽器獨占內存使用高效、節約的內存管理策略,又可以最大限度避免瀏覽器獨占內存給系統造成的內存壓力,使瀏覽器不因產生大量內存碎片而浪費內存,提高內存申請速度。下面結合圖4示出的本發明實施例的一種混合內存分配的系統的結構示意圖,進一步詳細說明本發明實施例一種混合內存分配的系統的結構。配置模塊401,用于配置瀏覽器獨占內存,配置瀏覽器內存使用的閾值。具體的,例如一個系統整個內存為256M,在瀏覽器初始化之前,配置瀏覽器獨占內存為4M,貝U系統中非瀏覽器獨占內存的大小為252M, —般而言,瀏覽器獨占內存不小于3M。并配置瀏覽器內存使用的閾值,一般配置閾值為4k字節。判斷模塊402,用于判斷瀏覽器申請的內存大小是否超過瀏覽器內存使用的閾值。具體的,用戶在使用瀏覽器時,會單次動態申請內存,比如用戶點擊瀏覽器上“返回”鍵時,瀏覽器就會申請內存來執行該命令,有些命令占用的內存比較小,有些命令占用的內存較大。分配模塊403,用于若超過瀏覽器內存使用的閾值,從系統中非瀏覽器獨占的內存
中分配瀏覽器申請的內存。具體的,當瀏覽器申請的內存為IM時,大于瀏覽器內存使用的閾值4K,則從系統中非瀏覽器獨占的內存252M中來分配IM提供給瀏覽器使用。釋放模塊404,用于釋放該瀏覽器申請的內存,其他模塊重新使用。具體的,當瀏覽器完成命令后,會釋放申請的內存1M,系統中其他的模塊來重新使用。實施上述實施例,使用混合內存分配,既可以利用瀏覽器獨占內存使用高效、節約的內存管理策略,又可以最大限度避免瀏覽器獨占內存給系統造成的內存壓力,使瀏覽器不因產生大量內存碎片而浪費內存,提高內存申請速度。較優的,分配模塊403,還用于若沒有超過瀏覽器內存使用的閾值,從所述瀏覽器獨占內存中分配瀏覽器申請的內存。具體的,當瀏覽器申請的內存為3K時,小于瀏覽器內存使用的閾值4K,則從瀏覽器獨占的內存4M中來分配3K提供給瀏覽器使用。釋放模塊404,還用于釋放該瀏覽器申請的內存,瀏覽器獨占內存回收釋放的內存。具體的,當瀏覽器完成命令后,會釋放申請的內存3K,瀏覽器獨占內存會回收3K內存。較優的,配置模塊401,還用于配置瀏覽器能使用的最大內存,瀏覽器能使用的最大內存為瀏覽器申請的系統內存最大值與瀏覽器獨占內存之和。具體的,如果配置瀏覽器能使用的最大內存為100M,則代表瀏覽器申請的系統內存最大值為100M-4M=96M。當瀏覽器申請的內存大小超過所述瀏覽器內存使用的閾值時,
判斷模塊402,還用于判斷瀏覽器申請的內存與累積未釋放內存之和是否大于瀏覽器申請的系統內存最大值。具體的,瀏覽器申請的系統內存最大值為瀏覽器能使用的最大內存與瀏覽器獨占內存之差。因為每次申請的內存都有自己的生命周期,各不相同,所以系統內存中還存在累積未釋放內存。分配模塊403,還用于若瀏覽器申請的內存與累積未釋放內存之和小于或等于瀏覽器申請的系統內存最大值,從系統中非瀏覽器獨占的內存中分配瀏覽器申請的內存。
具體的,當瀏覽器申請的內存為1M,累積未釋放內存為4M時,兩者之和為5M,小于瀏覽器能使用的最大內存與瀏覽器獨占內存之差96M,則從系統中非瀏覽器獨占的內存252M中來分配IM提供給瀏覽器使用。本發明提供的系統可以集成在瀏覽器中,本發明提供的一種混合內存分配的方法、系統及瀏覽器可以用于一般的系統中,也可以應用于嵌入式系統中。需要說明的是,通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明可借助軟件加必需的硬件平臺的方式來實現,當然也可以全部通過硬件來實施。基于這樣的理解,本發明的技術方案 對背景技術做出貢獻的全部或者部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在存儲介質中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例或者實施例的某些部分所述的方法。以上所揭露的僅為本發明實施例中的較佳實施例而已,當然不能以此來限定本發明之權利范圍,因此依本發明權利要求所作的等同變化,仍屬本發明所涵蓋的范圍。
權利要求
1.一種混合內存分配的方法,其特征在于,包括 配置瀏覽器獨占內存,配置瀏覽器內存使用的閾值; 判斷瀏覽器申請的內存大小是否超過所述瀏覽器內存使用的閾值; 若超過所述瀏覽器內存使用的閾值,從系統中非瀏覽器獨占的內存中分配所述瀏覽器申請的內存; 釋放所述瀏覽器申請的內存,其他模塊重新使用。
2.如權利要求I所述的方法,其特征在于,所述判斷瀏覽器申請的內存大小是否超過所述瀏覽器內存使用的閾值之后,還包括 若沒有超過所述瀏覽器內存使用的閾值,從所述瀏覽器獨占內存中分配所述瀏覽器申請的內存; 釋放所述瀏覽器申請的內存,所述瀏覽器獨占內存回收釋放的內存。
3.如權利要求I或2所述的方法,其特征在于,所述配置瀏覽器獨占內存,配置瀏覽器內存使用的閾值,還包括 配置瀏覽器能使用的最大內存,所述瀏覽器能使用的最大內存為瀏覽器申請的系統內存最大值與所述瀏覽器獨占內存之和。
4.如權利要求3所述的方法,其特征在于,所述若超過所述瀏覽器內存使用的閾值,從系統中非瀏覽器獨占的內存中分配所述瀏覽器申請的內存,具體還包括 判斷所述瀏覽器申請的內存與累積未釋放內存之和是否大于所述瀏覽器申請的系統內存最大值,若小于或等于,從系統中非瀏覽器獨占的內存中分配所述瀏覽器申請的內存。
5.如權利要求4所述的方法,其特征在于,還包括,若所述瀏覽器申請的內存與累積未釋放內存之和大于所述瀏覽器申請的系統內存最大值,則結束所述瀏覽器申請的內存的申請。
6.一種混合內存分配的系統,其特征在于,包括 配置模塊,用于配置瀏覽器獨占內存,配置瀏覽器內存使用的閾值; 判斷模塊,用于判斷瀏覽器申請的內存大小是否超過所述瀏覽器內存使用的閾值; 分配模塊,用于若超過所述瀏覽器內存使用的閾值,從系統中非瀏覽器獨占的內存中分配所述瀏覽器申請的內存; 釋放模塊,用于釋放所述瀏覽器申請的內存,其他模塊重新使用。
7.如權利要求6所述的系統,其特征在于,還包括 所述分配模塊,還用于若沒有超過所述瀏覽器內存使用的閾值,從所述瀏覽器獨占內存中分配所述瀏覽器申請的內存; 所述釋放模塊,還用于釋放所述瀏覽器申請的內存,所述瀏覽器獨占內存回收釋放的內存。
8.如權利要求6或7所述的系統,其特征在于,所述配置模塊,還用于配置瀏覽器能使用的最大內存,所述瀏覽器能使用的最大內存為瀏覽器申請的系統內存最大值與所述瀏覽器獨占內存之和。
9.如權利要求8所述的系統,其特征在于,還包括,當瀏覽器申請的內存大小超過所述瀏覽器內存使用的閾值時, 所述判斷模塊,還用于判斷所述瀏覽器申請的內存與累積未釋放內存之和是否大于所述瀏覽器申請的系統內存最大值; 所述分配模塊,還用于若所述瀏覽器申請的內存與累積未釋放內存之和小于或等于所述瀏覽器申請的系統內存最大值,從系統中非瀏覽器獨占的內存中分配所述瀏覽器申請的內存。
10.一種瀏覽器,其特征在于,所述瀏覽器包括權利要求6至9任一項所述的混合內存分配的系統。
全文摘要
本發明公開了一種混合內存分配的方法,其特征在于,包括配置瀏覽器獨占內存,配置瀏覽器內存使用的閾值;判斷瀏覽器申請的內存大小是否超過所述瀏覽器內存使用的閾值;若超過所述瀏覽器內存使用的閾值,從系統中非瀏覽器獨占的內存中分配所述瀏覽器申請的內存;釋放所述瀏覽器申請的內存,其他模塊重新使用。本發明還公開了一種混合內存分配的系統及瀏覽器。實施上述實施例,使用混合內存分配,既可以利用瀏覽器獨占內存使用高效、節約的內存管理策略,又可以最大限度避免瀏覽器獨占內存給系統造成的內存壓力,使瀏覽器不因產生大量內存碎片而浪費內存,提高內存申請速度。
文檔編號G06F12/02GK102880551SQ20121026356
公開日2013年1月16日 申請日期2012年7月28日 優先權日2012年7月28日
發明者張敏銳 申請人:深圳市同洲電子股份有限公司