日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

#jvm内存及GC机制#

發布時間:2025/7/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 #jvm内存及GC机制# 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載

?

1 為什么要有Survivor區

先不去想為什么有兩個Survivor區,第一個問題是,設置Survivor區的意義在哪里??

如果沒有Survivor,Eden區每進行一次Minor GC,存活的對象就會被送到老年代。老年代很快被填滿,觸發Major GC(因為Major GC一般伴隨著Minor GC,也可以看做觸發了Full GC)。老年代的內存空間遠大于新生代,進行一次Full GC消耗的時間比Minor GC長得多。你也許會問,執行時間長有什么壞處?頻發的Full GC消耗的時間是非常可觀的,這一點會影響大型程序的執行和響應速度,更不要說某些連接會因為超時發生連接錯誤了。

好,那我們來想想在沒有Survivor的情況下,有沒有什么解決辦法,可以避免上述情況:

方案優點缺點
增加老年代空間更多存活對象才能填滿老年代。降低Full GC頻率隨著老年代空間加大,一旦發生Full GC,執行所需要的時間更長
減少老年代空間Full GC所需時間減少老年代很快被存活對象填滿,Full GC頻率增加

顯而易見,沒有Survivor的話,上述兩種解決方案都不能從根本上解決問題。

我們可以得到第一條結論:Survivor的存在意義,就是減少被送到老年代的對象,進而減少Full GC的發生,Survivor的預篩選保證,只有經歷16次Minor GC還能在新生代中存活的對象,才會被送到老年代。

2 為什么要設置兩個Survivor區

設置兩個Survivor區最大的好處就是解決了碎片化,下面我們來分析一下。

為什么一個Survivor區不行?第一部分中,我們知道了必須設置Survivor區。假設現在只有一個survivor區,我們來模擬一下流程:?
剛剛新建的對象在Eden中,一旦Eden滿了,觸發一次Minor GC,Eden中的存活對象就會被移動到Survivor區。這樣繼續循環下去,下一次Eden滿了的時候,問題來了,此時進行Minor GC,Eden和Survivor各有一些存活對象,如果此時把Eden區的存活對象硬放到Survivor區,很明顯這兩部分對象所占有的內存是不連續的,也就導致了內存碎片化。?
我繪制了一幅圖來表明這個過程。其中色塊代表對象,白色框分別代表Eden區(大)和Survivor區(小)。Eden區理所當然大一些,否則新建對象很快就導致Eden區滿,進而觸發Minor GC,有悖于初衷。?

碎片化帶來的風險是極大的,嚴重影響JAVA程序的性能。堆空間被散布的對象占據不連續的內存,最直接的結果就是,堆中沒有足夠大的連續內存空間,接下去如果程序需要給一個內存需求很大的對象分配內存。。。畫面太美不敢看。。。這就好比我們爬山的時候,背包里所有東西緊挨著放,最后就可能省出一塊完整的空間放相機。如果每件行李之間隔一點空隙亂放,很可能最后就要一路把相機掛在脖子上了。

那么,順理成章的,應該建立兩塊Survivor區,剛剛新建的對象在Eden中,經歷一次Minor GC,Eden中的存活對象就會被移動到第一塊survivor space S0,Eden被清空;等Eden區再滿了,就再觸發一次Minor GC,Eden和S0中的存活對象又會被復制送入第二塊survivor space S1(這個過程非常重要,因為這種復制算法保證了S1中來自S0和Eden兩部分的存活對象占用連續的內存空間,避免了碎片化的發生)。S0和Eden被清空,然后下一輪S0與S1交換角色,如此循環往復。如果對象的復制次數達到16次,該對象就會被送到老年代中。下圖中每部分的意義和上一張圖一樣,就不加注釋了。?
?
上述機制最大的好處就是,整個過程中,永遠有一個survivor space是空的,另一個非空的survivor space無碎片

那么,Survivor為什么不分更多塊呢?比方說分成三個、四個、五個?顯然,如果Survivor區再細分下去,每一塊的空間就會比較小,很容易導致Survivor區滿,因此,我認為兩塊Survivor區是經過權衡之后的最佳方案。

說明?
本人水平有限,不當之處希望各位高手指正。另外,文中的插圖都是我自己在word的smart art中繪制的,看起來不精致請見諒。?
如有轉載請注明出處?
http://blog.csdn.net/antony9118/article/details/51425581

轉載于:https://www.cnblogs.com/tnt-33/p/8473886.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的#jvm内存及GC机制#的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲第一色在线 | 午夜在线观看影院 | 亚洲AV成人无码久久精品巨臀 | 国产黄色一级网站 | 中文字幕第9页 | 欧美午夜激情影院 | 免费看一级黄色大片 | 91高清视频在线观看 | 91天堂在线 | 欧美日韩高清一区二区 国产亚洲免费看 | 日美一级片 | 天天操夜夜草 | 日日射天天射 | 成人国产一区 | 夜夜嗨老熟女av一区二区三区 | 91麻豆精品国产理伦片在线观看 | 成人黄色在线观看视频 | 久久久久亚洲av成人网人人网站 | 成人激情视频在线播放 | 天天做天天爱天天爽综合网 | 嫩色av| 色哟哟国产精品色哟哟 | 久久综合一区二区 | 国产美女91呻吟求 | 国产良妇出轨视频在线观看 | 精品国产乱码一区二 | 精品国产成人av | 亚洲激情在线视频 | 久久婷香 | 免费在线观看一区二区三区 | 欧美精品日韩少妇 | 色多多视频网站 | 欧美日韩精品在线视频 | ass精品国模裸体欣赏pics | 色免费看| 免费黄色网址视频 | 久久综合激的五月天 | 君岛美绪在线 | 日本黄色激情视频 | 视频一区 中文字幕 | 影音先锋三级 | 国产原创91 | 日韩成人在线影院 | 日本视频网 | 中文日韩字幕 | 91国自产精品中文字幕亚洲 | 国模私拍大尺度裸体av | 黄色污污视频网站 | 超碰pron| 二区三区在线观看 | 久热久操 | 黄色小说在线视频 | 高h奶汁双性受1v1 | 华人在线视频 | 国v精品久久久网 | 禁漫天堂黄漫画无遮挡观看 | 天天爽天天射 | 综合色网站 | 日韩三级a | 成人免费一级视频 | 久久国产精品久久国产精品 | 中文字幕一区二区三区在线观看 | 成人午夜毛片 | 少妇人妻真实偷人精品视频 | 一本之道av | 三级国产在线观看 | 亚洲一区中文字幕在线观看 | 国产稀缺真实呦乱在线 | 欧美激情在线观看一区 | 午夜久草 | 亚洲精品女人久久久 | 亚洲精品97 | 四虎新网址 | 午夜精品久久久久久久99热黄桃 | av免费在线播放 | 狂野欧美性猛交xxxx巴西 | 中国黄色三级 | 国产亚洲成人av | 中文字幕11页中文字幕11页 | 99热这里只有精品18 | 大胸喷奶水www视频妖精网站 | 日本wwwxxxx | 国产高清成人 | 黄色中文字幕在线观看 | 亚洲产国偷v产偷v自拍涩爱 | 欧美国产片 | 日本少妇毛茸茸高潮 | 久久国产主播 | 无码gogo大胆啪啪艺术 | 捆绑束缚调教 | 亚洲精品一区二区三区新线路 | 免费的三级网站 | 国产成人在线免费 | 奇米97 | 美腿丝袜av| 欧美美女性视频 | 久久久丁香 | 91视频福利| 婷婷五月综合激情 |