空间分配担保策略

在发生Minor GC之前,虚拟机会检查老年代最大可用的连续空间是否大于新生代所有对象的总空间

  • 如果大于,则此次Minor GC是安全的。
  • 如果小于,则虚拟机会查看-XX:HandlePromotionFailure设置值是否允许担保失败。
    • 如果HandlePromotionFaileure=true,那么会继续检测老年代最大可用连续空间是否大于历届晋升到老年代的对象的平均大小
    • 如果大于,则尝试进行一次Minor GC,但这次Minor GC依然是有风险的;
    • 如果小于,则改为进行一次Full GC
  • 如果HandlePromotionFailure=false,则改为进行一次Full GC

在JDK7之后,HandlePromotionFailure参数不会再影响到虚拟机的空间分配担保策略,规则变为只有老年代的连续空间大于新生代对象总大小或者大于历次晋升的平均大小就会进行Minor GC,否则进行Full GC。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容