JVM 堆内存

java堆 分为年轻代(Eden区,Survivor(From ,To)),老年代 

它们默认所占的比例为:年轻代1/3(Eden8/10,From1/10, To1/10),老年代2/3

对象new出来放到年轻代的Eden区,当Eden区满了会发生MinorGC,第一次发生MinorGC放到From区,第二次满的话,就从Eden区和From区到To区了,第三次满再从从Eden区和To区移到From区,这样来回倒腾,这中间有个点,每个对象的对象头中都存储着年龄信息,默认当minorGC15次后,假如某个对象还活着的话,会把它移到老年代去,当老年代空间满了的时候,会发生fullGC,这时会发生stop the world(暂停用户线程),如果回收不了空间,就会报OOM了,jvm调优的点就在于减少stop the world的时间

发布了43 篇原创文章 · 获赞 2 · 访问量 626

猜你喜欢

转载自blog.csdn.net/qq_33348135/article/details/104417093