jvm 垃圾收集器

来源:互联网 发布:平板电脑软件大全 编辑:程序博客网 时间:2024/05/16 16:28

几种垃圾收集器及内存分配与回收策略

如果说收集算法是内存回收的方法论,垃圾收集器就是内存的具体实现。下面介绍几种收集器。

serial收集器:

serial收集器是最基本的,历史最悠久的,这个收集器是一个单线程的收集器,但它的单线程的意义并不仅仅是说明它只会使用一个cpu或者一条收集线程去完成垃圾收集工作,更重要的是在它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。

ParNew收集器

ParNew收集器其实就是serial收集器的多线程版本,除了使用多线程进行垃圾收集之外,其余行为包括serial收集器可用的所有控制参数、收集算法、stop the world、对象分配规则、回收策略等于serial收集器完全一样,实现上这两种收集器也共用了相当多的代码。
ParNew收集器除了多线程收集之外,其他与serial收集器相比并没有太多创新之处,但它却是许多运行在server模式下的虚拟机首选的新生代收集器,其中有一个与性能无关但很重要的原因是,除了serial收集器外,目前只有它能与cms收集器配合使用。

parallel scavenge 收集器

Parallel scavenge 收集器也是一个新生代收集器,它使用复制算法的收集器,又是并发的多线程收集器。。。看上去和parNew都一样,但它有它自己的特别之处。
Parallel scavenge 收集器的目标则是达到一个可控制的吞吐量。所谓吞吐量就是cpu用于运行用户代码的时间与cpu总消耗时间的比值。
停顿时间越短越适合需要与用户交互的程序,良好的响应时间速度能提升用户的体验:而高吞吐量则可以高效的利用cpu时间,尽快的完成程序的运算任务,主要适合在后台运算而不需要太多交互的任务。

serial old收集器

serial old是serial收集器的老年代版本,


内存的介绍:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29632145&id=4616836


...................未完待续...................................


0 0
原创粉丝点击