• JVM笔记(4)--垃圾回收器(2)-CMS和G1


    第三章  垃圾收集器

      CMS

       1)CMS收集器:是一个以获取最短回收停顿时间收作为目标的收集器。

       2)回收过程:1 初始标记

             2 并发标记

             3 重新标记

             4 并发清除

            

             3)优势:并发收集,低停顿。

             4)劣势:1 对于处理器资源非常敏感,但是会随着处理器数量增加(处理器的核数为4最为合适)收集效率会下降。

           2 会产生“浮动垃圾”。在并发标记和并发清楚的阶段会产生新的垃圾对象。

           3 内存会产生碎片空间。因为CMS采用的是“标记-清除算法”。

       G1

       1)G1是采用面向局部收集的设计思路和基于Region的内存布局形式

       2)服务目标:G1是面向服务端应用的垃圾收集器。

       3)设计思路:不在是面向新生代,老年代或是Java堆进行垃圾收集(不采用分代理论),回收衡量标准不在是它属于哪个分代,

              而是哪里内存垃圾数量最多,回收该区域的收益最大(这种回收方式主要是因为Region的内存布局)。

          4)G1的回收过程

          1.初始标记

          2.并发标记

          3.最终标记

          4.筛选回收

          

          5)G1的优势与劣势

         优势:1.采用的回收算法为”标记-整理“,不会产生碎片空间,而且可供大对象分配内存。

            2.可以指定最大停顿时间(一般为100~200或200~300毫秒)。

            3.设计追求为可以满足应用的内存分配速率,不是把整个Java堆完全清理干净。

         劣势:1.从内存占用上来说,G1和CMS都采用的卡表处理跨代指针,但是G1的设计更为复杂。

            2.从执行负载上来说,G1采用写后屏障来更新维护卡表,要实现原始快照搜索还使用写前屏障来跟踪并发时指针的变化情况,相对于CMS来说更为复杂。

  • 相关阅读:
    改变UITabbar顶部分割线颜色
    UITableViewCell添加点击时改变字体的颜色、背景、图标
    【转】有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?
    AFNetworking https自签名证书 -1012 解决方案
    关于AFNetWorking 2.5.4之后版本编译报错问题解决方案
    UIImageView 使图片圆形的方法
    关于使用IQKeyBoardManager键盘还是被遮挡的问题解决方案
    关于ios7 以上版本 view被导航栏遮挡的问题 解决方案
    手动导入第三方工程/类库
    “请不要直接访问超全局$_GET数组”
  • 原文地址:https://www.cnblogs.com/linyu1/p/13976915.html
Copyright © 2020-2023  润新知