湖北建站中心,博物馆文化网站建设,wordpress+高清背景,网站栏目排序一、引言 不同版本的 JVM 默认使用的垃圾收集器是不同的#xff0c;目前的新生代和老年代的垃圾收集器如下图所示#xff0c;新生代和老年代之间的连线表示这些垃圾收集器可以进行搭配使用 垃圾收集器的名字和 JVM 里面的参数对照表如下#xff0c;即在 JVM 里面并不是存储的…一、引言 不同版本的 JVM 默认使用的垃圾收集器是不同的目前的新生代和老年代的垃圾收集器如下图所示新生代和老年代之间的连线表示这些垃圾收集器可以进行搭配使用 垃圾收集器的名字和 JVM 里面的参数对照表如下即在 JVM 里面并不是存储的垃圾收集器的名字而是有一个其他的名字。它是有一个对应关系的如下所示
垃圾收集器类型JVM 参数名称Serialdef new generationParNewpar new generationParallel ScavengePSYoungGenParallel OldParOldGenCMSconcurrent mark-sweep generationSerial Old(MSC)tenured generationG1garbage-first heapZGC
二、方法
2.1 PrintCommandLineFlags 这种方式仅适用于 windows 平台直接在控制台输入下面的命令行可以从展示信息中看到 当前机器 JVM 的垃圾回收器类型
java -XX:PrintCommandLineFlags -version
# 输入命令java -XX:PrintCommandLineFlags -version
C:\Users\Administratorjava -XX:PrintCommandLineFlags -version
-XX:InitialHeapSize255140800 -XX:MaxHeapSize4082252800 -XX:PrintCommandLineFlags -XX:UseCompressedClassPointers -XX:UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:UseParallelGC
java version 1.8.0_131
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)2.2 通过 GC 日志和堆信息 默认情况下GC 日志和 Heap 信息我们是看不到的可以通过增加 VM 参数的方式启动。这样当 GC 发生时我们就能看到关于垃圾回收器的相关信息了。 我们人为制造一个 full gc 的操作然后添加 vm 参数观察输出日志的变化如下所示
public class Test {public static void main(String[] args) {ListObject list new LinkedList();while(true){list.add(new byte[1024]);}}
}
-verbose:gc -XX:PrintGCDetails 2.3 通过 jmap -heap vmid