您的位置:首页 > 编程语言 > Java开发

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

2017-12-20 18:43 661 查看
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。

 垃圾收集器的参数总结。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: