性能问答>PrintTenuringDistribution参数打印Survivor对象年龄分布是ygc前的情况还是ygc后>
4回复
2年前

PrintTenuringDistribution参数打印Survivor对象年龄分布是ygc前的情况还是ygc后



PrintTenuringDistribution参数打印Survivor对象年龄分布,在1次ygc的时候是打印的gc前Survivor的情况吗?(图中gc时total)
image.png

是的话,按这个推论,ygc后剩余的新生代占用空间就是Survivor占用的空间,那么下次ygc的时候,total就应该和Survivor占用的空间相等啊,因为我理解ygc是eden+s0清除复制到了s1, 但是实际下次ygc的时候Survivor对象total并不等于上次ygc后的剩余的新生代占用空间, 请问是为什么?

如果表示ygc以后的年龄分布,那么这个累计的占用大小,应该跟ygc后剩余空间一样大啊,根据图中也对不上,求解释

5867 阅读
请先登录,再评论

哈哈,问得好这个问题,主要原因是age算的是真正的对象的大小,而你看到的gc之后的used并不纯粹是对象本身的大小和,还有一些gap,也就是其实还是存在碎片的

22年前
回复 hebaodan:

是的 gc之后才会打印各个age

2年前回复
回复 你假笨:

所以这个打印的实际是ygc后的各age对象大小总和?

2年前回复

这个问题经典, 差异的空间包含了, 使用 tlab, plab 的分配空间的过程中产生的 dummy int[] 对象

9月前