JVM·垃圾收集器与内存分配策略之垃圾收集器!
1、Serial(串行)收集器(新生代都采用复制算法)
这是个单线程的收集器:即 当他工作的时候,会停掉虚拟机所有的线程!(Stop The World)![](data:image/png;base64,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)
2、ParNew(并行)收集器(新生代都采用复制算法)
这是Serial的升级版,允许多条GC线程同时回收,但是,依然要停掉所有的用户线程(Stop The World)
3、Parallel Scavenge收集器(新生代都采用复制算法):尽可能的减少用户程序的停顿时间
这也是并行收集器,跟ParNew看上去一样,但多了个重要的性能:可控吞吐量
吞吐量:运行用户代码时间/(运行用户代码时间+垃圾回收时间)
-XX:MaxGCPauseMillis=m:m是一个大于0的毫秒数。即:收集器尽可能的保证内存回收花费的时间不超过设定值。
-XX:GCTimeRatio=n:n是大于0小于100的整数。公式1/(1+n)为垃圾收集时间占总时间的百分比。即:如果n=9。那么1/(1+9)=10%。GC运行的时间占总时间的10%。
-XX:+UseAdaptiveSizePolicy:这是一个开关参数,打开这个参数之后,就不需要手动指定新生代的大小(-Xmn),Eden和Survivor的比例(-XX:SurvivorRatio)、晋升老年代对象大小(-XX:PretenureSizeThreshold)等细节参数了,虚拟机会根据当前系统的运行情况收集性能监控信息,自动调整这些参数,以配合停顿时间或者吞吐量。
4、Serial Old收集器
是Serial的老年代收集器,老年代采用“标记-整理”算法。
5、Parallel Old 收集器
是Parallel Scavenge的老年代收集器,老年代采用“标记-整理”算法。
6、CMS 收集器 (Concurrent Mark Sweep)
获取最短回收停顿时间为目的。
整个过程:
1.初始标记(CMS initial mark):stop the world,时间短。串行
2.并发标记(CMS concurrent mark): 并发
3.重新标记(CMS remark):stop the world ,时间比初始标记长,但也很短。并行
4.并发清除(CMS concurrent sweep): 并发
说明:
1、CMS默认启动的回收线程:(CPU数量+3)/ 4。可以计算,cup数量不合适的时候,会占很多的cup。
2、浮动垃圾(Floating Garbage):CMS并发回收的同时,用户线程还在不断的产生垃圾,这部分垃圾只有在下次才会被回收。
3、JDK1.5默认当老年代使用到了68%时触发。调整参数:-XX:CMSInitiatingOccupancyFraction=70。即:老年代占70%的时候触发垃圾回收。。JDK1.6已经提升到92%
4、标记-清除 算法本身会有很多的内存碎片产生。所以有一下两个参数
-XX:+UseCMSCompactAtFullCollection :开关参数,默认开启。在老年代内存不够时,或者零碎内存放不下大对象时,进行内存压缩。
-XX:CMSFullGCsBeforeCompaction=5: 设置当进行5次不压缩的GC后,跟着来一次压缩的GC。
7、G1 收集器 (Garbage-First)
JDK7u4中开始应用,被赋予使命:替换CMS收集器。
整个过程:
1.初始标记(Initial marking):stop the world,时间短。串行
2.并发标记(Concurrent marking): 并发
3.最终标记(Final Marking):stop the world 。并行
4.筛选回收(Live Data Counting and Evacuation):stop the world 。并行
特点:
1、并发与并行。
2、分代收集(他可以不依赖分代)。
3、空间整合:整体采用“标记-整理”,局部(Region之间)采用“复制算法”。
4、可预测的停顿:能让使用者明确指定在一个长度为M毫秒的时间片段内,消耗在垃圾回收上的时间不得超过N毫秒。
看起来没那么厉害,那他到底哪里好了?
实现:
1、“化整为零”,将整个堆区分为若干个Region(区域)。新生代和老年代不再物理隔离,而是各自由不同的Region组成。
2、 价值大小:回收所获得的空间大小以及回收所需时间的经验值。在后台维护一个优先列表,每次根据允许的收集时间,有限回收加值大的Region。这种分区和优先级的模式,可以最大的保证在有限的时间内获取尽可能高的收集效率。
3、Remembered Set:为了避免或者尽可能减少由于Region之间对象的引用而引起的整个堆的扫描(因为Region之间可以互相引用,导致扫描不可能只发生在单个Region)。G1中每个Region都有与之对应的Remembered Set,虚拟机发现程序在对Reference类型进行写操作时(Reference写操作:就是将对象的引用关系写入Reference中),会产生一个Write Barrier暂时中断写操作,检查Reference类型是否在不同的Region,如果是,便通过CardTable吧相关的引用信息写入到被引用对象所属的Region中的Remembered Set中,保证不对全内存扫描,也不会遗漏内存垃圾。
凡你能说的,你说清楚。凡你不能说的,留给沉默!