簡體   English   中英

當伊甸園已滿但其中的所有對象都還活着時會發生什么

[英]what will happen when eden is full but all objects in it is alive

我正在學習 Java 內存管理,從我已經從互聯網上學到的。

當 Eden 空間已滿時觸發 Minor GC,Minor GC 會將仍在引用的對象復制到一個空的幸存者空間,但該空間比 Eden 小,當 eden 充滿活動對象時,收集器會做什么? AFAIK,Java GC 收集器正在復制收集器,它應該將所有活動對象移走然后清除舊的內存空間。

當 Eden 空間已滿時觸發 Minor GC

幾乎正確。 當一個主要 GC 被觸發時,一個次要 GC 可以被觸發。 就像 GC 說的:“我需要做一個完整的 GC,但首先我會做一個次要的”。 在這種情況下(例如G1 ), Eden space可能不會滿。

當這種情況發生時(一些Eden地區無法完全疏散),這些地區就會變老,甚至正如這里所評論的那樣:

疏散失敗的地區總是變老......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM