垃圾回收器

收集器 收集对象和算法 收集器类型 说明 适用场景
Serial 新生代,复制算法 单线程 进行垃圾收集时,必须暂停所有工作线程,直到完成;(stop the world) 简单高效; 适合内存不大的情况;
ParNew 新生代,复制算法 并行的多线程收集器 ParNew垃圾收集器是Serial收集器的多线程版本 运行在server模式下的虚拟机中首选
Parallel Scavenge 吞吐量优先收集器 新生代,复制算法 并行的多线程收集器 类似ParNew,更加关注吞吐量, 达到一个可控制的吞吐量;jdk默认的新生代垃圾回收器 本身是Server级别多CPU机器上的默认GC方式,良好的响应速度能够提升 用户的体验,如web后台系统
Serial Old 老年代,标记整理算法 单线程 与Serial一样 Client模式下虚拟机使用
Parallel Old 老年代,标记整理算法 并行的多线程收集器 Parallel Scavenge收集器的老年代版本,为了配合Parallel Scavenge 的面向吞吐量的特性而开发的对应组合;jdk默认的老生代垃圾回收器 在注重吞吐量以及CPU资源敏感的场合采用
CMS 老年代,标记清除算法 并发收集器 尽可能的缩短垃圾收集时用户线程停止时间;缺点在于: 1.内存碎片 2.需要更多cpu资源 3.需要更大的堆空间 重视服务的响应速度、系统停顿时间和用户体验的互联网网站或者B/S系统。 互联网后端目前cms是主流的垃圾回收器;
G1 跨新生代和老年代 并行与并发收集器 JDK1.7才正式引入,采用分区回收的思维,基本不牺牲吞吐量的前提 下完成低停顿的内存回收 面向服务端应用的垃圾回收器

你可能感兴趣的:(jvm,java)