如何確保新生代物件被老年代物件引用的時候不被gc

2021-08-18 19:13:11 字數 594 閱讀 1234

stop-the-world:

stop-the-world會在任何一種gc演算法中發生。stop-the-world意味著 jvm 因為要執行gc而停止了應用程式的執行。當stop-the-world發生時,除了gc所需的執行緒以外,所有執行緒都處於等待狀態,直到gc任務完成。gc優化很多時候就是指減少stop-the-world發生的時間。

minor gc:發生在新生代的gc(minor:次要的)。

major gc:發生在老年代的gc(major:主要的)也叫full gc。

如何確保新生代物件被老年代引用的時候不被gc?(查詢老年代物件來確認對新生代物件的引用避免誤**)

機制:當老年代存活物件多時,每次minor gc查詢老年代所有物件影響gc效率(因為gc stop-the-world),所以在老年代有乙個write barrier(寫屏障)來管理的card table(卡表),card table存放了所有老年代物件對新生代物件的引用。

所以每次minor gc通過查詢card table來避免查詢整個老年代,以此來提高gc效能。

新生代的配置

引數 xmn可以用於設定新生代的大小。設定乙個較大的新生代大小會減少老年代的大小,此引數對系統效能以及gc影響很大。新生代的大小一般設定為整個堆空間的1 3到1 4左右。引數 xx survivorratio用來設定新生代中eden空間和from to空間的比例關係,如下 xx survivorra...

Young Gen新生代演算法

sun oracle 的 hotspot jvm 又把新生代進一步劃分為 3 個區域 1.乙個相對大點的區域,稱為 伊甸園區 eden 2.兩個相對小點的區域稱為 from 倖存區 survivor 和 to 倖存區 survivor 按照規定,新物件會首先分配在 eden 中 如果新物件過大,會直...

新生代CIO如何影響企業程序

cio們如何在企業中變得更有影響力?已成庫業界普遍關心注話題。cio普遍存在困惑,在參與企業決策過程中,他們希望提供有助於管理層決策的資訊,但當涉及重大決定時,他們的聲音卻沒有得到應有的重視。新生代cio的公升級 從現在企業管理者對於cio的需求角度看,他們大多希望cio在從事資訊化工作方面,落實到...