page contents

JVM内存模型问题

Pack 发布于 2019-12-27 15:25
阅读 714
收藏 0
分类:Java开发

JVM内存模型中,如果堆内存中,只有old区和Eden区,没有Survivor区的情况下,当Eden区执行了16次Mnior GC后剩余的对象年龄达到16,采用复制算法到old区。当一个对象年龄从0-1采用标记整理算法,进行对象的排列,如果采用这种内存模型,会不会带来内存碎片和一系列的其他问题? 求大佬解答。

40
Pack
Pack

1.Eden区执行16次Mnior GC用什么算法呢,标记-清除一定不行,会有碎片。复制算法?,那么此内存只有一半可用,因为需要留出内存装复制过来的对象,浪费内存。标记-整理,速度好像比较慢吧,适合old区。有了Survivor区就不一样了,因为大部分对象可用被回收,直接将存活的对象复制到Survivor区,然后清空Eden区就行了,然而Survivor区也需要GC,所以就有了s0和s1了吧。

请先 登录 后评论