相关疑难解决方法(0)

为什么堆被划分为Eden、Survivor 空间和Old Generation?

你能回答我一个关于 JVM 垃圾收集过程的问题吗?

为什么堆被划分为Eden、Survivor 空间和Old Generation?

当一个年轻的疏散被处理时,通过从根开始的引用来访问对象以找出无法访问的对象。可到达的对象被标记为“活着”,不可到达的对象不被标记并将被消除。

结果,所有对象都被考虑,包括在老年代分配的对象也被访问并标记,如果它们是可达的。

据我所知,同时回收年轻代和老年代是很困难的,因为这些代位于内存的不同连续部分。

但是,如果即使在 Young 疏散级别上最简单的标记之后,如果所有可到达和不可到达的对象都是已知的并且可以删除,我们仍然拥有包含所有活动和死对象的整个位图,为什么我们需要这种划分?

我也知道弱世代假设,但为什么我们需要划分?

java garbage-collection jvm heap-memory g1gc

6
推荐指数
1
解决办法
2015
查看次数

标签 统计

g1gc ×1

garbage-collection ×1

heap-memory ×1

java ×1

jvm ×1