美文网首页
并发回收算法

并发回收算法

作者: MentallyL | 来源:发表于2017-08-31 14:37 被阅读7次

所谓的并发回收算法即是指垃圾回收器与应用程序能够交替工作,
并发回收 器其实也会暂停,
但是时间非常短,
它并不会在从开始回收寻找、标记、清楚、压缩或拷贝等方式过程完全暂停服务,

它发现有几个时间比较长,一个就是标记,因 为这个回收一般面对的是老年代,
这个区域一般很大,而一般来说绝大部分对象应该是活着的,
所以标记时间很长,

还有一个时间是压缩,但是压缩并不一定非要每 一次做完GC都去压缩的,

而拷贝呢一般不会用在老年代,

所以暂时不考虑;所以他们想出来的办法就是:

**第一次短暂停机是将所有对象的根指针找到,这个非常容 易找到,而且非常快速,

找到后,此时GC开始从这些根节点标记活着的节点(这里可以采用并行),

然后待标记完成后,此时可能有新的 内存申请以及被抛弃(java本身没有内存释放这一概念)

,此时JVM会记录下这个过程中的增量信息,而对于老年代来说,必须要经过多次在 survivor倒腾后才会进入老年代,**

所以它在这段时间增量一般来说会非常少,
而且它被释放的概率前面也说并不大(JVM如果不是完全做Cache,自 己做pageCache而且发生概率不大不小的pageout和pagein是不适合的)

;JVM根据这些增量信息快速标记出内部的节点,也是非常快速 的,就可以开始回收了,

由于需要杀掉的节点并不多,所以这个过程也非常快,

压缩在一定时间后会专门做一次操作,
有关暂停时间在Hotspot版本,也就是 SUN的jdk中都是可以配置的,

当在指定时间范围内无法回收时,JVM将会对相应尺寸进行调整,如果你不想让它调整,在设置各个区域的大小时,

就使用定 量,而不要使用比例来控制;
当采用并发回收算法的时候,
一般对于老年代区域,不会等待内存小于10%左右的时候才会发起回收,
因为并发回收是允许在回收的 时候被分配,那样就有可能来不及了,所以并发回收的时候,J

VM可能会在68%左右的时候就开始启动对老年代GC了。

Serial GC 适合最小化地使用内存和并行开销的场景、Parallel GC 适合最大化应用程序吞吐量的场景、CMS GC 适合最小化中断或停顿时间的场景

相关文章

  • 阿里菜鸟国际Java研发面经(三面+总结):JVM+架构+MyS

    Java面试的重点总结: 数据结构与算法,JVM内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池...

  • 快手Java技术岗4面:Spring+MySQL+多线程+Has

    Java岗面试的重点: 数据结构与算法,JVM内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池等...

  • 抖音四面,复盘总结48题:Java基础+Spring+多线程+算

    Java岗面试的重点: 数据结构与算法,JVM内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池等...

  • 并发回收算法

    所谓的并发回收算法即是指垃圾回收器与应用程序能够交替工作,并发回收 器其实也会暂停,但是时间非常短,它并不会在从开...

  • golang sync .pool

    Go 是一个自动垃圾回收的编程语言,它的算法我们后续会讲到,主要就是采用三色并发标记算法标记对象并回收。我们可以不...

  • JVM垃圾收集器

    经典垃圾收集器 如果说收集算法是内存回收的方法论,那垃圾收集器就是内存回收的实践者。 并行和并发都是并发编程中的专...

  • java虚拟机(三) - 垃圾回收算法CMS

    # 什么是CMS CMS全称Concurrent Mark Sweep,是一款并发的、使用标记-清除算法的垃圾回收...

  • 三色算法和SATB算法

    1、三色标记算法 1、提到并发标记,我们不得不了解并发标记的三色标记算法。它是描述追踪式回收器的一种有效的方法,利...

  • 图解 CMS 垃圾回收机制,你值得拥有

    什么是CMS CMS全称Concurrent Mark Sweep,是一款并发的、使用标记-清除算法的垃圾回收器,...

  • JVM垃圾回收算法

    Java基础:JVM垃圾回收算法 [toc] 参考:Java基础:JVM垃圾回收算法图解JVM垃圾回收算法 总结:...

网友评论

      本文标题:并发回收算法

      本文链接:https://www.haomeiwen.com/subject/xaeqjxtx.html