关闭

分代收集算法与分区收集算法

别叨叨 1年前 ⋅ 202 阅读
  1. 分代收集算法:当前主流VM垃圾收集都采用“分代收集(Generational Collection)”算法,这种算法会根据对象存活周期的不同将内存划分为几块,如JVM中的新生代、老年代、永久代,这样就可以根据务年代特点分别采用最适当的GC算法。
    1. 新生代复制算法:每次垃圾收集都能发现大批对象已死,只有少量存活,因此选用复制算法,只需要付出少量存活对象的复制成本就可以完成收集。
    2. 老年代标记整理算法:因为对象存活率高、没有额外空间对它进行分配担保,就必须采用“标记-清理”或“标记-整理”算法来进行回收,不必进行内存复制,直接腾出内存空间。
  2. 分区收集算法:分区算法则将整个堆空间划分为连续的不同小区间,每个小区间独立使用,独立回收,这样可以控制一次回收多个小区间,根据目标停顿时间,每次合理地回收若干个小区间,从而减少一次GC所产生的停顿。

全部评论: 0

    我有话说: