• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

JVM 垃圾收集器

互联网 diligentman 1周前 (11-22) 8次浏览

JVM 垃圾收集器

经典垃圾收集器

如果说收集算法是内存回收的方法论,那垃圾收集器就是内存回收的实践者。《Java虚拟机规范》中对垃圾收集器应该如何实现并没有做出任何规定,因此不同厂商、不同版本的虚拟机所包含的垃圾收集器都可能会有很大差别,不同的虚拟机一般也都会提供各种参数供用户根据自己的应用特点和要求组合出各个内存分代所使用的收集器。

1. Serial收集器

Serial收集器是最基础、历时最悠久的收集器,曾今(在JDK1.3.1之前)是HotSpot虚拟机新生代收集器的唯一选择。大家只看名字就应该能够猜到,这个收集器是一个单线程工作的收集器,但它的“单线程”的意义并不仅仅是说明它只会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调在它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。“Stop The World”这个词语也许听起来很酷,但这项工作是由虚拟机在后台自动发起和自动完成的,在用户不可知、不可控的情况下把用户的正常工作的线程全部停掉,这对很对应用来说都是不可接受的。

迄今为止,它依然是HotSpot虚拟机运行在客户端模式下的默认新生代收集器,有着优于其他收集器的地方,那就是简单而高效(与其他收集器的单线程相比)。对于内存资源受限的环境,它是所有收集器里额外内存消耗最小的;对于单核处理器或者处理器核心数较少的环境来说,Serial收集器由于没有现成的交互开销,专心做垃圾收集自然可以获得最高的单线程收集效率。

JVM 垃圾收集器

2. ParNew收集器

 

 

3. Parallel Scavenge收集器

 

4. Serial Old收集器

 

5. Parallel Old收集器

 

 

 

6. CMS收集器

 

 

 

Garbage First收集器

 

 

 

 

 

 

 

 

 

 


喜欢 (0)