回收器的种类:java
--串行(–XX:+UseSerialGC )算法
Out ofBox算法,年轻代串行复制,年老代串行标记整理,主要用于桌面应用并发
--并行(–XX:+UseParallelGC )jvm
年轻代暂停应用程序,多个垃圾收集线程并行的复制收集,年老代暂停应用程序,与串行收集器同样,单垃圾收集线程标记整理。JDK6.0启用该算法后,默认启用了-XX:+UseParallelOldGC,性能大为提升性能
--并发(Concurrent Low Pause Collector)(–XX:+UseConcMarkSweepGC )spa
启用该参数,默认启用了-XX:+UseParNewGC;简单的说,并发是指用户线程与垃圾收集线程并发,程序在继续运行,而垃圾收集程序运行于其余CPU上。
线程
如何查看jvm使用的是哪一种回收器:code
方法一:blog
java -XX:+PrintFlagsFinal -version | grep :get
方法二:
java -XX:+PrintCommandLineFlags -version
方发三:
import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; import java.util.List; public class x { public static void main(String args[]) { List<GarbageCollectorMXBean> l = ManagementFactory.getGarbageCollectorMXBeans(); for(GarbageCollectorMXBean b : l) { System.out.println(b.getName()); } } }