相关疑难解决方法(0)

如何在年轻一代的收藏中找出活物?

据我所知,YGC所花费的时间与伊甸园中活物的数量成正比.我也理解在主要集合中如何计算实时对象(线程堆栈和静态对象中的所有对象以及可传递地从这些对象到达的其他对象.)

但是我不明白年轻一代的收藏中是如何计算出活物的?如果它解析线程堆栈,那么它需要解析eden + tenured space,而我认为并非如此.那么JVM如何在eden中找到活动对象并在To Survivor空间中复制它们呢?

java heap garbage-collection

8
推荐指数
1
解决办法
1704
查看次数

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

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

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

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

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

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

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

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

java garbage-collection jvm heap-memory g1gc

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

标签 统计

garbage-collection ×2

java ×2

g1gc ×1

heap ×1

heap-memory ×1

jvm ×1