Sto*_*dow 7 java performance garbage-collection jvm
在收集年轻代内存时,JVM收集器只扫描属于年轻代的那些根对象(可直接从根集访问的堆中的对象),并使用写屏障支持的卡表/记忆集来确定旧的区域.生成可能包含对年轻一代中对象的引用的对象.
我的问题是,如果年轻的收集者确定年轻一代中的某个特定对象只有一个来自旧一代对象的外部参考,那么它如何知道旧一代对象本身是不是垃圾,从而制作年轻一代的对象"直播"并且没有资格收藏?例如,可以存在从根集直接到旧代中的该对象的路径,该路径又具有对所述年轻代对象的引用.年轻的收藏家通常会认为这个年轻一代的对象是现场的还是在决定忽略/收集它之前如何确定指向它的老一代对象是否是实时/垃圾?
如何知道旧对象本身不是垃圾?
这不是主要/完整集合的目的。假设是旧的gen对象不会经常死亡。
执行完整收集时,它将检查所有对象,但是执行次要/年轻收集时,只会清除年轻集合中的对象。