【笔记】深入理解 java 虚拟机---垃圾收集器

2018-01-02  本文已影响0人  张航_8ee7

1 收集器作用的区间不同。有老年代的还有新生代的。

2 收集器解决的问题不同

3 没有最好的收集器。只有最适合的。

1 Serial 收集器  。 单线程,新生代,适用桌面应用。

2 ParNew收集器 。  Serial的多线程版,新生代。

3 Parallel Scavanenge.(平行 ,清除)收集器。 以cpu吞吐量为目的。可以认为控制cpu的吞吐量。

4 Serial Old。 单线程,老年代。

5 Parallel Old。  同2,老年代。

重点是下面的两种。

1 CMS(Concurrent Mark Sweep) .。 目的是为了GC停顿时间最短为目的。 工作流程: 初始标记==》并发标记==》重新标记==》并发清除。3个标记一个清除。初始标记和重新标记仍然需要GC停顿。但是耗时很短,并发标记 和 并发清除可以和 用户线程同时执行。所以,可以称的上一个无GC停顿的收集器。

缺点 :1【1】 比较占cpu资源 】【2】 产生浮动垃圾,不能及时清除(因为收集过程中,用户的线程仍然再继续,所以可能会产生一些在这次收集结果没有收集到的垃圾)。 【3】标记清除的特点,产生不连续的内存空间。

2 G1 收集器(Grabage First)。 目前最新的技术产品之一。 运行流程:初始标记==》并发标记==》最终标记==》筛选返回。3个标价一个清除。不过是基于标记整理算法的,从局部看是 基于 复制算法的。 

优点: 【1】 并发和并行 。和用户线程并行。【2 】分代收集。 可以一个收集器管理整个堆。它将堆划分为一个个 region。 【3】空间整合 。相对与cms的标记清除算法。【4可预测的停顿】我们可以人为的控制GC停顿时间。依据它将内存分成一个个Region。

 垃圾收集器的参数总结。

上一篇下一篇

猜你喜欢

热点阅读