欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java觸發(fā)gc的最佳時機-創(chuàng)新互聯

這篇文章將為大家詳細講解有關java觸發(fā)gc的最佳時機,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

長興ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

一、內存回收策略和常見概念

常見內存回收策略可以從以下幾個維度來理解:

1 串行&并行

串行:單線程執(zhí)行內存回收工作。十分簡單,無需考慮同步等問題,但耗時較長,不適合多cpu。

并行:多線程并發(fā)進行回收工作。適合多CPU,效率高。

2 并發(fā)& stop the world

stop the world:jvm里的應用線程會掛起,只有垃圾回收線程在工作進行垃圾清理工作。簡單,無需考慮回收不干凈等問題。
并發(fā):在垃圾回收的同時,應用也在跑。保證應用的響應時間。會存在回收不干凈需要二次回收的情況。

3 壓縮&非壓縮&copy

壓縮:在進行垃圾回收后,會通過滑動,把存活對象滑動到連續(xù)的空間里,清理碎片,保證剩余的空間是連續(xù)的。

非壓縮:保留碎片,不進行壓縮。

copy:將存活對象移到新空間,老空間全部釋放。(需要較大的內存。)

一個垃圾回收算法,可以從上面幾個維度來考慮和設計,而最終產生擁有不同特性適合不同場景的垃圾回收器。

二、JVM的YGC&FGC

YGC :對新生代堆進行GC。頻率比較高,因為大部分對象的存活壽命較短,在新生代里被回收。性能耗費較小。

FGC :全堆范圍的GC。默認堆空間使用到達80%(可調整)的時候會觸發(fā)FGC。以我們生產環(huán)境為例,一般比較少會觸發(fā)FGC,有時10天或一周左右會有一次。

三、什么時候會觸發(fā)YGC,什么時候觸發(fā)FGC?

● YGC的時機:

edn空間不足

● FGC的時機:

1.old空間不足;

2.perm空間不足;

3.顯示調用System.gc() ,包括RMI等的定時觸發(fā);

4.YGC時的悲觀策略;

5.dump live的內存信息時(jmap –dump:live)。

對YGC的觸發(fā)時機,相當的顯而易見,就是eden空間不足, 這時候就肯定會觸發(fā)ygc

對于FGC的觸發(fā)時機, old空間不足, 和perm的空間不足, 調用system.gc()這幾個都比較顯而易見,就是在這種情況下, 一般都會觸發(fā)GC。

最復雜的是所謂的悲觀策略,它觸發(fā)的機制是在首先會計算之前晉升的平均大小,也就是從新生代,通過ygc變成新生代的平均大小,然后如果舊生代剩余的空間小于晉升大小,那么就會觸發(fā)一次FullGC。sdk考慮的策略是, 從平均和長遠的情況來看,下次晉升空間不夠的可能性非常大, 與其等到那時候在fullGC 不如悲觀的認為下次肯定會觸發(fā)FullGC, 直接先執(zhí)行一次FullGC。而且從實際使用過程中來看, 也達到了比較穩(wěn)定的效果。

關于java觸發(fā)gc的最佳時機就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享標題:java觸發(fā)gc的最佳時機-創(chuàng)新互聯
網頁網址:http://www.chinadenli.net/article12/ccphgc.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站維護定制網站搜索引擎優(yōu)化虛擬主機標簽優(yōu)化全網營銷推廣

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都網站建設