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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java gc的特性_Java12新特性 -- 可中断的G1 Mixed GC

發(fā)布時間:2025/3/11 java 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java gc的特性_Java12新特性 -- 可中断的G1 Mixed GC 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Java 12 中增強了 G1 垃圾收集器關(guān)于混合收集集合的處理策略,這節(jié)主要介紹在 Java 12 中同時也對 G1垃圾回收器進行了改進,使其能夠在空閑時自動將 Java 堆內(nèi)存返還給操作系統(tǒng),這也是 Java 12 中的另外一項重大改進。

目前 Java 11 版本中包含的 G1 垃圾收集器暫時無法及時將已提交的 Java 堆內(nèi)存返回給操作系統(tǒng)。為什么呢? G1目前只有在full GC或者concurrent cycle(并發(fā)處理周期)的時候才會歸還內(nèi)存,由于這兩個場景都是G1極力避免的,因此在大多數(shù)場景下可能不會及時歸還committed Java heap memory給操作系統(tǒng)。除非有外部強制執(zhí)行。

在使用云平臺的容器環(huán)境中,這種不利之處特別明顯。即使在虛擬機不活動,但如果仍然使用其分配的內(nèi)存資源,哪怕是其中的一小部分,G1 回收器也仍將保留所有已分配的 Java 堆內(nèi)存。而這將導致用戶需要始終為所有資源付費,哪怕是實際并未用到,而云提供商也無法充分利用其硬件。如果在此期間虛擬機能夠檢測到 Java 堆內(nèi)存的實際使用情況,并在利用空閑時間自動將 Java 堆內(nèi)存返還,則兩者都將受益。

具體操作

為了盡可能的向操作系統(tǒng)返回空閑內(nèi)存,G1 垃圾收集器將在應用程序不活動期間定期生成或持續(xù)循環(huán)檢查整體 Java堆使用情況,以便 G1 垃圾收集器能夠更及時的將 Java 堆中不使用內(nèi)存部分返還給操作系統(tǒng)。對于長時間處于空閑狀態(tài)的應用程序,此項改進將使 JVM 的內(nèi)存利用率更加高效。

而在用戶控制下,可以可選地執(zhí)行Full GC,以使返回的內(nèi)存量最大化。

JDK12的這個特性新增了兩個參數(shù)分別是G1 PeriodicGCInterval及G1 PeriodicGCSystemLoadThreshold,設置為0的話,表示禁用。如果應用程序為非活動狀態(tài),在下面兩種情況任何一個描述下,G1 回收器會觸發(fā)定期垃圾收集:

自上次垃圾回收完成以來已超過 G1PeriodicGCInterval ( milliseconds ), 并且此時沒有正在進行的垃圾回收

任務。如果 G1PeriodicGCInterval 值為零表示禁用快速回收內(nèi)存的定期垃圾收集。

應用所在主機系統(tǒng)上執(zhí)行方法 getloadavg(),默認一分鐘內(nèi)系統(tǒng)返回的平均負載值低于

G1PeriodicGCSystemLoadThreshold指定的閾值,則觸發(fā)full GC或者concurrent GC( 如果開啟

G1PeriodicGCInvokesConcurrent ),GC之后Java heap size會被重寫調(diào)整,然后多余的內(nèi)存將會歸還給操作系統(tǒng)。如果 G1PeriodicGCSystemLoadThreshold 值為零,則此條件不生效。

如果不滿足上述條件中的任何一個,則取消當期的定期垃圾回收。等一個 G1PeriodicGCInterval 時間周期后,將重新考慮是否執(zhí)行定期垃圾回收。

G1 定期垃圾收集的類型根據(jù) G1PeriodicGCInvokesConcurrent 參數(shù)的值確定:如果設置值了,G1 垃圾回收器將繼續(xù)上一個或者啟動一個新并發(fā)周期;如果沒有設置值,則 G1 回收器將執(zhí)行一個Full GC。在每次一次 GC 回收末尾,G1 回收器將調(diào)整當前的 Java 堆大小,此時便有可能會將未使用內(nèi)存返還給操作系統(tǒng)。新的 Java 堆內(nèi)存大小根據(jù)現(xiàn)有配置確定,具體包括下列配置:- XX:MinHeapFreeRatio、-XX:MaxHeapFreeRatio、-Xms、-Xmx。

默認情況下,G1 回收器在定期垃圾回收期間新啟動或繼續(xù)上一輪并發(fā)周期,將最大限度地減少應用程序的中斷。如果定期垃圾收集嚴重影響程序執(zhí)行,則需要考慮整個系統(tǒng) CPU 負載,或讓用戶禁用定期垃圾收集。

總結(jié)

以上是生活随笔為你收集整理的java gc的特性_Java12新特性 -- 可中断的G1 Mixed GC的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。