垃圾收集器与内存分配策略

2019-05-03  本文已影响0人  valor_wang

对象存活判定算法

  1. 引用计数算法
    虚拟机并不是通过引用计算算法来判断对象是否存活的
  2. 可达性分析算法
    基本思路:通过一系列的称为"GC Roots"的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots 没有任何引用链相连,则证明该不可用。
    JDK 1.2 之后,引用分为强引用、软引用、弱引用、虚引用,4种。

垃圾收集算法:

算法执行效率保证

垃圾收集器

  1. Serial 单线程,简单高效,新生代中使用
  2. ParNew :Serial多线程版本
  3. Parallel Scavenge 新生代收集器
    目的是达到一个可控制的吞吐量。吞吐量:CPU用于运行用户代码的时间与CPU总消耗时间的比值。=运行用户代码时间/(运行用户代码时间+垃圾收集时间)
  4. CMS (Concurrent Mark Sweep)JDK1.5收集老年代,一种以获取最短回收停顿时间为目标。使用标记-清除算法。
    缺点:
  1. G1(Garbage First) JDK 7u4,面向服务端应用的垃圾收集器
    特点:
  1. Serial Old 老年代中使用,使用标记-整理算法。
  2. Parallel Old 是 Parallel Scavenge老年代版本
上一篇下一篇

猜你喜欢

热点阅读