[發明專利]一種Java虛擬機分代垃圾快速回收方法在審
| 申請號: | 201410236367.3 | 申請日: | 2014-05-29 |
| 公開(公告)號: | CN103995741A | 公開(公告)日: | 2014-08-20 |
| 發明(設計)人: | 許海華;沈江濤;何明;杜平;許哲維 | 申請(專利權)人: | 無錫商埃曲信息科技有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F12/02;H04N21/443 |
| 代理公司: | 上海伯瑞杰知識產權代理有限公司 31227 | 代理人: | 吳澤群 |
| 地址: | 214174 江蘇省無錫*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 java 虛擬機 垃圾 快速 回收 方法 | ||
技術領域
本發明屬于數字電視中間件技術領域,特別涉及一種Java虛擬機分代垃圾快速回收方法。
背景技術
數字電視中間件技術為廣電運營商的業務提供一個相對統一的平臺,使得跨域的業務互通變得更加簡單。中間件技術通過對底層硬件資源的抽象,提供對上層各種應用的支持,其中間件平臺負責屏蔽底層硬件差異性,并將底層資源模塊抽象為上層API接口供第三方業務模塊調用,通過終端平臺來進行解析和呈現。在中間件平臺里,終端平臺在負責完成基本的音視頻播放的同時,也負責接收前端廣播的應用,并根據用戶的操作運行這些應用,使得跨平臺、海量信息業務的開展成為可能。
對于數字電視中間件軟件平臺,中國數字電視中間件標準規定了必需支持Java應用。要實現支持Java的功能,通常包含一個Java虛擬機,用來執行運行在數字電視機頂盒上的Java應用程序,通過獨特的結構及跨平臺設計,將應用程序和中間件標準,底層操作系統、硬件驅動隔離開,使上層的數字電視的服務應用不必考慮過多的平臺細節,實現跨平臺與硬件無關性。
在數字電視中間件技術架構下,Java虛擬機采用緊湊對象布局設計,統一資源管理的模式,使內存布局盡可能緊湊,為了保證系統的運行速度。在Java虛擬機中,不僅要分配對象所用的內存資源,還需要跟蹤資源的使用情況,定期檢查出不再使用的內存,由系統自動回收并做再次分配,這被稱為垃圾回收機制。在這種方式下,Java程序必須考慮內存釋放問題,影響了機頂盒的實時性要求。
發明內容
本發明的目的是提供一種Java虛擬機分代垃圾快速回收方法,使得Java程序中將不用考慮內存的釋放問題,為提高系統程序的安全性,滿足機頂盒的實時性要求。
本發明的技術方案是,一種Java虛擬機分代垃圾快速回收方法,包括步驟:
采用虛擬表構建用于回收并且整理內存空間的垃圾回收器;
將內存劃分為多個大小相等的內存塊,每個內存塊屬于不同的內存集,內存集是包括若干內存塊的集合;
對于等待被回收處理的內存空間內的多個內存集,分別掃描每個內存集內的內存塊;
內存集按照先后順序,在先的內存集先被掃描會回收,在后的內存集后被掃描回收,如同代際更替;
如果某個內存集J內的內存塊中的對象均未被其他內存集內的內存塊中的對象引用,則該內存集J為垃圾內存,被回收。
還包括步驟:
若某內存集J的內存塊中的對象A被其他內存集的內存塊C中對象B引用,則將對象A以及與對象A有引用關系的與對象A同處內存集J的其他對象轉移至內存塊C內;
若內存塊C已滿,則在內存塊所處的內存集的尾部開辟新的內存塊一次存放。
還包括步驟:
內存集J中未被其他內存集引用的對象被轉移至內存集J的尾部,當掃描至內存集J尾部,所述的被轉移至內存集J尾部的對象仍然未被處于其他內存集的外部對象引用,則內存集J被回收。
所述的Java虛擬機分代垃圾快速回收,還包括對I/0和信號量的系統資源回收。
現有技術中的Java虛擬機采用了火車算法,其每次只回收一個車次的策略使Java虛擬機垃圾回收的運行時間在可控制范圍內,但不能保證垃圾回收何時運行。而根據測試,在數字電視中間件技術架構下,Java虛擬機在低負載情況下運行垃圾回收會更少占用系統資源,因此考慮優化目前垃圾回收器采用火車算法。
本發明的具體采用的策略大致如下:數字電視中間件技術架構下,在Java虛擬機采用緊湊對象布局設計,統一資源管理的模式,使內存布局盡可能緊湊,不僅要分配對象所用的內存資源,還需要跟蹤資源的使用情況,定期檢查出不再使用的內存,由系統自動回收并做再次分配,這被稱為垃圾回收機制。內部創建一個系統資源使用信息表,該表記錄了系統資源和相關方法的調用情況,通過對系統資源信息表的統計和分析,采用異步方式通知垃圾回收器運行在系統負載比較小的狀態中,通過分代垃圾回收的火車算法,對每次只回收一列火車的策略,使Java虛擬機垃圾回收的空間控制在一定范圍內,很大程度上滿足數字電視實時性需求從而達到系統負載盡可能平衡,提升系統整體性能。
本發明采用獨特的虛擬表技術,提高Java虛擬機分代垃圾回收的快速收集方法,主要針對機頂盒硬件運算能力不高、存儲有限、實時性強的特點,突破了傳統的Java虛擬機分代垃圾回收方法,采用新的設計和優化算法,提高了運算速度和響應時間,很好地滿足了數字電視機頂盒的實時性要求。
附圖說明
圖1本發明涉及的數字電視Java虛擬機框架圖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫商埃曲信息科技有限公司,未經無錫商埃曲信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410236367.3/2.html,轉載請聲明來源鉆瓜專利網。





