1条回答 默认 最新
- nssnail 2022-09-07 09:35关注
你这种说法有误,survivor有一个from和to区,当Eden满了会yong gc到survior的from区,from区满了就会清理部分对象,把剩下的移动到to区,to满了又清理一次,剩下的又放回from区,这样来回8次,也就是移动16次(你说的年龄)或者满到清理不下之后,就才会被移动到old区。
survivor是一种牺牲空间换时间的算法,因为清理完的空间是不连续的,比如form区的满了清理一次之后会有不连续的对象,然后他再把这些对象一个一个的移动到to区,那他就会很快把不连续的对象整理好,但是这种做法就是永远都有一半是空闲的空间
解决 无用评论 打赏 举报