【量产】如何查看正在运行中的JVM采用哪种GC算法策略

发出提问

JVM,即是JAVA Viual Machine(java虚拟机);GC,即是Garbage Collector (垃圾收集器)。对于刚学习JVM的同学来说,不熟悉命令参数的获取,JVM采用不同的GC会对应不同的内存分配和回收策略。想获取正在运行的JVM正在采用哪种GC策略却无从查看,下面教程教你查看

解决方法

新建一个测试类:TestClass.java
【量产】如何查看正在运行中的JVM采用哪种GC算法策略

1、【界面友好式】Debug/Run Configurations

step 1 :在Debug Configurations或Run Configurations中找到Arguments,并在VM Arguments中加入参数: -XX:+PrintCommandLineFlags,如下图所示:
【量产】如何查看正在运行中的JVM采用哪种GC算法策略
step 2 :点击debug或者run,即可在console中看到如下回显,UseParallelGC是垃圾收集器的一种。
【量产】如何查看正在运行中的JVM采用哪种GC算法策略

2、【命令简洁式】CMD命令行

我用的是jdk 8 ,虚拟机是HotSpot服务端64位版的
【量产】如何查看正在运行中的JVM采用哪种GC算法策略
测试类TestClass.java需要保持运行状态或者debug中断状态。
【量产】如何查看正在运行中的JVM采用哪种GC算法策略

step 1 : 输入: jps ,找到运行应用的PID:3080, 你的不一定是3080,这个数字后面有用。
【量产】如何查看正在运行中的JVM采用哪种GC算法策略
step 2: 输入:jinfo -flags 3080 , 可查看参数设置,其中便可以发现采用的GC,如下图黄色字的部分。
【量产】如何查看正在运行中的JVM采用哪种GC算法策略