本教程操作环境:windows7系统、java10版,DELL G3电脑。
1.概念
CMS是一个老年代收集器,全称 Concurrent Low Pause Collector,是JDK1.4后期开始引用的新GC收集器,在JDK1.5、1.6中得到了进一步的改进。它是对于响应时间的重要性需求大于吞吐量要求的收集器。对于要求服务器响应速度高的情况下,使用CMS非常合适。
2.执行步骤
(1)初始标记:标记GC Roots能直接关联到的对象。
(2)并发标记:用户线程和上一步找到的对象的标记过程并发执行。
(3)重新标记:修改在上一步用户线程运行过程中导致的引用链变化。
(4)并发清除:用户线程和清理线程并发执行。
3.测试实例
package com.tools138.com;
public class Test2 {
private static int n = 20;
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
byte[] b1 = getM(50);
byte[] b2 = getM(50);
byte[] b3 = getM(50);
byte[] b4 = getM(50);
byte[] b5 = getM(50);
byte[] b6 = getM(50);
byte[] b7 = getM(5);
byte[] b8 = getM(5);
byte[] b9 = getM(5);
byte[] b10 = getM(5);
byte[] b11 = getM(5);
byte[] b12 = getM(5);
byte[] b13 = getM(5);
byte[] b14 = getM(5);
byte[] b15 = getM(5);
byte[] b16 = getM(5);
byte[] b17 = getM(5);
byte[] b18 = getM(5);
byte[] b19 = getM(5);
byte[] b20 = getM(100);
byte[] b21 = getM(100);
byte[] b22 = getM(100);
byte[] b23 = getM(100);
// Thread.sleep(2000);
}
public static byte[] getM(int m) {
return new byte[1024 * 1024 * m];
}
}以上就是java中CMS收集器的用法,相信大家对于这种不容易出去卡顿,同时响应速度块的收集器已经跃跃欲试了。在学会了基本的CMS基础内容后,可以就代码部分进行试验。



