JVM中的垃圾收集器

来源:互联网 发布:新商盟软件下载 编辑:程序博客网 时间:2024/06/14 04:12
-----------------------------------------------------------------------垃圾收集器-----------------------------------------------------------------------新生代收集器:Serial收集器、ParNew收集器、Parallel Scavenge收集器1,Serial收集器概念:Serial收集器是一个单线程的收集器,它在进行垃圾收集的时候,必须暂停其他所有的工作线程,直到它搜集结束。(Stop the world)优点:简单而高效(与其它单线存放收集器相比)应用:运行在Client模式下的虚拟机的默认新生代收集器。说明:在桌面应用中,分配给虚拟机管理的内存一般不会很大,收集几十兆或者几百兆的新生代,停顿的时间还不到一秒,只要不是频繁发生,这点停顿还是可以接受的。2,ParNew收集器概念:ParNew收集器其实就是Serial收集器的(并行)多线程版本,即它是使用多线程进行垃圾收集的(多条垃圾收集线程并行工作)。优点:能与CMS收集器搭配工作。应用:运行在Server模式下的虚拟机的新生代收集器。说明:目前只有ParNew可以与CMS收集器搭配使用3,Parallel Scavenge收集器:吞吐量优先收集器概念:Parallel Scavenge收集器是一个新生代收集器,特点:Parallel Scavenge收集器目标是:达到一个可控制的吞吐量(Throughput)说明:吞吐量 = 运行代码的时间 / (运行代码的时间 + 垃圾收集的时间)重要:1)停顿的时间越少,就越适合与用户交互的程序,良好的响应速度能提升用户体验2)吞吐量越高,CPU的利用率就越高,可以尽快的完成程序的运算任务,主要适合在后台运算而不需要太多交互的任务。3)GC停顿的时间是以牺牲吞吐量和新生代的空间来换取的。老年代收集器:Serial Old收集器、Parallel Old收集器、CMS收集器1,Serial Old收集器概念:Serial Old收集器是Serial收集器的老年代版本,它同样是一个单线程收集器。使用标记-整理算法。应用:1)在Client模式下的虚拟机使用2)在Server模式下:2.1 与Parallel Scavenge收集器搭配使用2.2 作为CMS收集器的后备预案,在并发收集失败(Concurrent Mode Failure)时使用。2,Parallel Old收集器概念:Parallel Old收集器是Parallel Scavenge收集器的老年代版本,使用多线程和标记-整理算法。说明:从jdk1.6开始提供重要:在注重吞吐量或者对CPU资源敏感的场合,都优先考虑Parallel Scavenge + Parallel Old 组合。3,CMS(Concurrent Mark Sweep)收集器概念:CMS收集器是一种以获取最短回收停顿为目标的收集器。使用标记-清除算法。应用:B/S系统的服务器端上

0 0
原创粉丝点击