JVM在進行GC時,并不是對三個區域統一回收,大部分時候都是新生代(伊甸園和幸存區)
創新互聯2013年開創至今,是專業互聯網技術服務公司,擁有項目成都做網站、網站建設、外貿營銷網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元博興做網站,已為上家服務,為博興各地企業和個人服務,聯系電話:13518219792● 伊甸園
● 幸存區(form to)
● 老年區
一、引用計數 1.概念● 將被引用的對象進行標記,引用多次就遞增,最后標記為0的對象清除
2.優點● 實現簡單,判定效率高
3.缺點● 本身有消耗(方法要有計數的變量,引用計數器改變計數)
● 難以解決對象之間相互循環引用的問題;對象objA和objB都有字段 instance , 賦值令objA.instance=objB及objB.instance=objA ,互相引用,導致引用計數不為0
二、復制算法 1.概念● 每次GC都會將Eden活著的對象移到幸存區,
● 幸存區中將from中存活的對象放到to。
● 一個對象經歷了15GC(可修改),放到老年代
● 復制算法最佳使用場景:新生區對象存活都較低
2.優點● 沒有內存的碎片
3.缺點● 浪費了幸存區to一半的內存空間。假如說對象100%存活,數據每一次復制都需要成本
三、標記清除算法 1.概念● 第一次對活著的對象標記
● 第二次清除沒被標記的對象
2.優點● 對比復制算法,不需要額外的空間
3.缺點● 兩次掃描浪費時間,會產生內存碎片
四、標記清除壓縮(標記壓縮、標記整理) 1.概念● 先標記清除,然后將內存碎片進行整理
2.優點● 不會產生內存碎片
3.缺點● 相比標記清除,又增加了一步掃描
4.優化● 多次GC清除后再進行一次壓縮,避免每次清除每次壓縮,即標記清除+標記清除壓縮
五、算法總結● 內存效率:復制算法>標記清除算法>標記壓縮算法 (時間復雜度)
● 內存整齊度:復制算法=標記壓縮算法>標記清除算法
● 內存利用率:標記清除算法=標記壓縮算法>復制算法
PS:沒有最好的算法,但是有最合適的 ——>GC:分代收集算法
● 年輕代:存活率低 復制算法
● 老年代:存活率大 標記清除(內存碎片不是很多)+標記壓縮混合 實現
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
當前文章:java的GC垃圾回收算法區別-創新互聯
本文來源:http://vcdvsql.cn/article2/hsgoc.html
成都網站建設公司_創新互聯,為您提供電子商務、做網站、靜態網站、定制開發、網站導航、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯