zoukankan      html  css  js  c++  java
  • GC

    对于HotSpotVM来说,Gc按照回收区域又分为两大种类型:一种是部分收集(Partial Gc),一种是整堆收集(Full GC)
      部分收集:不是完整收集整个Java堆的垃圾收集。其中又分为:
        新生代收集(Minor GC / Young GC):只是新生代的垃圾收集
        老年代收集(Najor Gc / old Gc):只是老年代的垃圾收集。目前,只有CMS GC会有单独收集老年代的行为。注意的是,很多时候Major GC会和Full GC混淆使用,需要具体分辨是老年代回收还是整堆回收。
        混合收集(Mixed GC):收集整个新生代以及部分老年代的垃圾收集。目前,只有G1 GC会有这种行为
      整堆收集(Full GC):收集整个java堆和方法区的垃圾收

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

        1如果大于,则此次Minor Gc是安全的
        2如果小于,则虚拟机会查看-xX:HandlePromotionFailure设置值是否允许担保失败。
          1)如果HandlePromotionFailure=true,那么会继续检查老年代最大可用连续空间是否大于历次晋升到老年代的对象的平均大小。
            如果大于,则尝试进行一次Minor GC,但这次Minor Gc依然是有
            如果小于,则改为进行一次Full GC。
          2)如果HandlePromotionFailure=false,则改为进行一次Full GC。
      在JDK7 之后,HandlePromotionFailure参数不会再影响到虚拟机的空间分配担保策略,观察OpenJDK中的源码变化,虽然源码中还定义了HandlePromotionFailure参数,但是在代码中已经不会再使用它。JDK7之后的规则变为只要老年代的连续空间大于新生代对象总大小或者历次晋升的平均大小就会进行Minor Gc,否则将进行Full GC。

  • 相关阅读:
    根据基本表结构及其数据生成SQL语句
    (转)一个DbHelper数据操作类
    解决AJAX中使用UpdatePanel后再用Response.Write();等无法弹出对话框问题 3法
    今天看到的一些软件工程管理的辅助软件
    编写维护状态的自定义WEB服务器控件
    webBrowser.execWB的完整说明
    [导入]在Web.Config中指定页面的基类
    [导入]一处 ADO.NET Entity Framework 的逻辑BUG
    [导入]在后台代码中引入XAML的方法
    选择排序(java版)
  • 原文地址:https://www.cnblogs.com/zyf-yxm/p/13648345.html
Copyright © 2011-2022 走看看