定义键盘快捷键 WorldCloud ISP 河南普通话考试 pmp教程 oracle删除表字段 plsql连接mysql python3网络编程 python3基础教程 python获取数据类型 python例子 python写入文件 python的安装路径 搭建java开发环境 java的方法 java时间格式化 java命令 java连接数据库代码 java日期转时间戳 图吧导航怎么样 计算机电子书 苹果手机老是自动重启 kms神龙 风火云 maya2008 复制到剪贴板 快打旋风3出招表 多面硬币 羽毛球拍握法 鬼灵战马 hdcp是什么 血dk属性 微信预约系统 华为mate8和p9哪个好 电脑录屏工具 小米手机开发者模式 mxf是什么格式 ps画笔工具变成十字 python去除空格 手机下载微博客户端
当前位置: 首页 > 学习教程  > 编程语言

59.分代收集算法、增量收集算法、分区收集算法简介

2020/8/11 20:18:21 文章标签:

目录

  • 1.分代收集算法
  • 2.增量收集算法
  • 3.分区收集算法

1.分代收集算法

  1. 前面讲到的标记-清除算法、复制算法、标记-压缩算法,都有优缺点,没有一种算法是最好的。
  2. JAVA将堆分为新生代和老年代,这样可以根据各个年代的特点的不同使用不同的算法。
    在这里插入图片描述
  3. 在新生代中使用复制算法,在老年代中使用标记-清除算法或者标记-压缩算法,或者两者的结合。(这就是所谓的分代收集算法)
    在这里插入图片描述
  4. CMS是基于标记-回收算法实现的,回收效率高,对于碎片问题,采用的是基于标记-整理算法的Serial Old回收器作为补偿措施。
    在这里插入图片描述

2.增量收集算法

  1. 在现有的收集算法中,每次垃圾回收,应用程序都会处于一种Stop the World的状态,这种状态下,应用程序会被挂起,暂停一切正常的工作。这样一来,将严重影响用户体验或者系统稳定性。
  2. 基本思想:如果一次性将所有的垃圾进行处理,需要造成系统长时间的停顿,那么就可以让垃圾收集线程和应用程序线程交替进行。每次,垃圾回收线程只收集一小片区域的内存空间,接着切换到用户线程继续执行。依次反复,知道垃圾收集完成。
    在这里插入图片描述
    增量算法优缺点:
    在这里插入图片描述

3.分区收集算法

在这里插入图片描述

  1. 分区收集算法就是将堆空间分成连续的不同的小区间region,每一个小区间都独立使用,独立回收,这种算法的好处是可以控制一次回收多少个小区间。如下图所示,将堆空间划分成一个个小的region
    在这里插入图片描述

更多JVM文章请访问我的JVM专栏:
https://blog.csdn.net/u011069294/category_10113093.html


本文链接: http://www.dtmao.cc/news_show_100315.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?