JDK 9 之前:默认的垃圾回收器是Parallel Scavenge(新生代)+ Parallel Old(老年代)。Parallel Scavenge和Parallel Old都是并行多线程的垃圾收集器,主要追求CPU吞吐量,适合需要高效率处理大量计算任务的场景12。
JDK 9 及以后:默认的垃圾回收器变为G1(Garbage-First Garbage Collector)。G1垃圾收集器主要针对大内存数据库或复杂应用,追求停顿时间短,适合需要低延迟的应用场景12。
打开windows的命令行工具或者linux的控制台,运行以下命令查看当前有哪些jvm进程在运行
jps
然后运行以下命令,获取该应用所有的vm参数
jinfo -flags [你的应用进程号]
找到-useXXXX这样的参数,参数后即为所使用的GC回收器
例如:
-XX:CICompilerCount=2 -XX:ConcGCThreads=1 -XX:G1ConcRefinementThreads=2 -XX:G1EagerReclaimRemSetThreshold=8 -XX:G1HeapRegionSize=1048576 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=134217728 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=2147483648 -XX:MaxNewSize=1287651328 -XX:MinHeapDeltaBytes=1048576 -XX:MinHeapSize=8388608 -XX:NonNMethodCodeHeapSize=5826188 -XX:NonProfiledCodeHeapSize=122916026 -XX:ProfiledCodeHeapSize=122916026 -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:SoftMaxHeapSize=2147483648 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+`UseG1GC`
可以看出当前进程所采用的垃圾回收器是G1