zoukankan      html  css  js  c++  java
  • JVM (三)- GC 垃圾回收器

            GC 垃圾回收器

    CMS 

            Concurrent Mark-Sweep 

            老年代回收器

            CMS:一种以获得最短停顿时间为目标的收集器,非常适用 B/S 系统。

            是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动 JVM 的参数加上“-XX:+UseConcMarkSweepGC”来指定使用 CMS 垃圾回收器

            标记 - 清除垃圾算法实现 : 

                    标记无用对象,然后进行清除回收。缺点:效率不高,无法清除垃圾碎片。

    Serial Old

             CMS 的备选,Serial 垃圾回收器的老年版本,单线程

             老年代回收器

             标记 - 整理算法 进行垃圾回收:

                     标记无用对象,让所有存活的对象都向一端移动,然后直接清除掉端边界以外的内存。

    Parallel Old 

              Serial Old 的多线程版本, Prallel 的老生代版本;

              老年代回收器

               标记-整理的内存回收算法 :

                        标记无用对象,让所有存活的对象都向一端移动,然后直接清除掉端边界以外的内存。

    Serial 

            最早的单线程串行垃圾回收器

            新生代回收器

            复制算法 : 按照容量划分二个大小相等的内存区域,当一块用完的时候将活着的对象复制到另一块上,然后再把已使用的内存空间一次清理掉。缺点:内存使用率不高,

    只有原来的一半。

                   

    ParNew

          ParNew 是 Serail 的多线程版本   

          新生代回收器

          复制算法 :

    Parallel 

           和 ParNew 收集器类似是多线程的,但 Parallel 是吞吐量优先的收集器,可以牺牲等待时间换取系统的吞吐量。

    G1

         整堆回收器:

          一种兼顾吞吐量和停顿时间的 GC 实现,是 JDK 9 以后的默认 GC 选项。

    分代垃圾回收器

         分代回收器有两个分区:老生代和新生代,新生代默认的空间占比总空间的 1/3,老生代的默认占比是 2/3。

         新生代使用的是复制算法,新生代里有 3 个分区:Eden、To Survivor、From Survivor,它们的默认占比是 8:1:1,它的执行流程如下

         把 Eden + From Survivor 存活的对象放入 To Survivor 区;

         清空 Eden 和 From Survivor 分区;
              From Survivor 和 To Survivor 分区交换,From Survivor 变 To Survivor,To Survivor
              变 From Survivor。

         

  • 相关阅读:
    升级Xcode之后VVDocumenter-Xcode不能用的解决办法
    iOS国际化
    display:table 表格布局
    display: run-in
    连续字符换行 溢出点点点 多行省略
    Number 类型
    Boolean 相关
    Browsing contexts 浏览器上下文
    return flase 作用
    JS外链
  • 原文地址:https://www.cnblogs.com/Jomini/p/13201640.html
Copyright © 2011-2022 走看看