最后 , 我把目前主流JDK使用到的JVM垃圾收集器采用的算法做下简单总结 , 方便大家对比参考 ,
- 新生代垃圾收集器
- Serial-复制算法:Serial收集器是新生代单线程收集器 , 优点是简单高效 , 算是最基本、发展历史最悠久的收集器 。它在进行垃圾收集时 , 必须暂停其他所有的工作线程 , 直到它收集完成 。
- ParNew收集器-复制算法:ParNew收集器是新生代并行收集器 , 其实就是Serial收集器的多线程版本 。
- Parallel Scavenge(并行回收)-复制算法:
- Parallel Scavenge收集器是新生代并行收集器 , 追求高吞吐量 , 高效利用 CPU 。该收集器的目标是达到一个可控制的吞吐量(Throughput) 。所谓吞吐量就是CPU用于运行用户代码的时间与CPU总消耗时间的比值 , 即 吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间) 。停顿时间越短就越适合需要与用户交互的程序 , 良好的响应速度能提升用户体验 , 而高吞吐量则可用高效率地利用CPU时间 , 尽快完成程序的运算任务 , 主要适合在后台运算而不需要太多交互的任务 。
- Serial Old-标记整理算法:Serial Old是Serial收集器的老年代版本 , 它同样是一个单线程(串行)收集器 , 使用标记整理算法 。这个收集器的主要意义也是在于给Client模式下的虚拟机使用
- Parallel Old-标记整理算法:Parallel Old 是Parallel Scavenge收集器的老年代版本 , 使用多线程和“标记-整理”算法 。
- CMS:标记清除算法
- G1:标记整理算法
【JAVA垃圾收集算法总结以及CMS、G1算法详解】
推荐阅读
- 为什么Java中的const关键字没有实现?
- java大文件分片上传、断点续传、急速秒传
- 内网信息收集清单
- JavaScript 内置对象之——Date,看完你会更清晰
- Java自定义DNS解析器负载均衡实现
- 在微控制器平台等小型物联网设备上运行 JavaScript
- Java 字节码技术详解
- 垃圾发电原理及特点介绍
- Java,OpenCV,图像阈值分割,阈值化,二值阈值化、截断阈值化等
- Java 日志记录—记录什么和不记录什么?