标签:性能 ble ace 表示 总结 gcs 内存碎片 scom member
本篇主要介绍一下JVM的几种垃圾收集器。
其示意图例如以下所看到的,上面的三个是新生代的收集器,
以下三个是老年代的收集器。当中G1收集器是能够用于新生代和老年代的收集工作。
JVM垃圾收集器
1、Serial(串行收集器):用于新生代GC,复制算法,启动时默觉得Client模式,GC的线程为单线程。缺点是由于单线程GC,会造成中断的时间(Sop-the-world)比較大。
(对于单核的CPU来说,比并行收集的效率要高)其示意图例如以下所看到的:
Serial串行收集器
2、ParNew(并行收集器):与Serial类似,不同点在于它一般用于新生代的并行回收,并且通常情况下执行在Server模式(单核CPU下。性能可能比Serial还要差)。示意图例如以下所看到的:
ParNew并行收集器
3、Parallel Scavenge(并行回收):用于新生代回收,复制算法,并行收集。
与ParNew的不同是它的关注点不同,它能够精确的控制吞吐量。【吞吐量= 程序执行时间/(程序执行时间 + 垃圾收集时间),比如:JVM共执行了100min。当中垃圾收集花掉1min,那吞吐量就是99%】示意图例如以下所看到的:
Parallel Scavenge并行收集
4、Serial Old(串行收集器):是Serial收集器的老年代版本号。使用标记-压缩(标记-整理)收集算法,主要用于启动模式为Client的JVM。
示意图能够參考Serial串行收集器。
5、Parallel Old(并行收集器):是Parallel的老年代版本号。使用标记-压缩(标记-整理)收集算法。
其示意图能够參考Parallel并行收集。
6、CMS(concurrent mark sweep):并发收集器(发生GC时,GC线程与应用线程同一时候执行)。是一种以最短响应为目标的收集器,适用于B/S架构的执行环境。
使用标记-清除算法,因此会产生大量的内存碎片。CMS的收集大概能够分为一下几个步骤:【初始标记 initial mark】--->【并发标记 concurrent mark】--->【又一次标记 remark】--->【并发清除 concurrent sweep】。
其示意图例如以下所看到的:
CMS并发收集器
7、G1收集器:是一款面向服务端的收集器,未来有可能替代CMS收集器。
G1收集器具备下面特点:
a、并发与并行:能充分利用多核CPU的硬件特性来缩短停顿时间(Stop-the-world),能够与应用线程一同执行。
b、分带搜集:与其它收集器一样。分代的概念在G1中也存在。
G1可以自己独立的去管理GC,它可以採用不同的方式去处理不同存活时间的对象。
c、空间整合:从总体上看G1使用的是标记-压缩(整理)的GC算法。这就意味着在JVM执行的时候不会产生大量的内存碎片。从而能够让程序长时间的执行。
d、可预測的停顿:与CMS相比。G1除了能够有更短的停顿时间之外,还能够建立可预測的停顿时间模型。
不计算Remembered Set的操作,G1收集器的运作大概能够分为下面几个步骤:【初始标记 initial marking】--->【并发标记 concurrent marking】--->【终于标记 final marking】--->【筛选回收 live data counting and evacuation】
G1并发并行收集
GC參数总结
-XX:+<option> 启用选项
-XX:-<option> 不启用选项
-XX:<option>=<number>
-XX:<option>=<string>
GC參数组合
GC參数------------------------------------------------------------------Young------------------------tenured
====================================================================
-XX:+UseSerialGC----------------------------------------------------Serial-------------------------Serial Old
-XX:+UseParallelGC--------------------------------------------------Parallel Scavenge -------Serial Old
-XX:+UseConcMarkSweepGC-------------------------------------ParNew----------------------CMS
-XX:+UseParNewGC-------------------------------------------------ParNew----------------------Serial Old
-XX:+UseParallelOldGC---------------------------------------------Parallel Scavenge---------Parallel Old
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC--------Serial--------------------------CMS
-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC-------G1-----------------------------G1
标签:性能 ble ace 表示 总结 gcs 内存碎片 scom member
原文地址:http://www.cnblogs.com/lxjshuju/p/6888999.html