JVM-参数调试
2020-03-10 本文已影响0人
GIT提交不上
JVM参数类型:1)标配参数 2)X参数 3)XX参数。
标配参数:1)-version 2)-help 3)java -showversion。
X参数:1)-Xint 2)-Xcomp 3)-Xmixed。
XX参数:
- Boolean类型 +/-
- KV设置类型
如何查看一个正在运行的java程序,它的某个JVM参数是否开启?具体值?
jps -l
jinfo -flag PrintGCDetails 18004 //-XX:-PrintGCDetails
jinfo -flags 18004
-Xms 等价于 -XX:InitialHeapSize //初始堆内存大小,默认为物理内存的1/64。
-Xmx 等价于 -XX:MaxHeapSize //最大分配内存,默认为物理内存的1/4。
//查看 JVM初始化参数
java -XX:+PrintFlagsInitial
//查看修改和更新
java -XX:+PrintFlagsFinal -version // = :=
运行java命令的同时打印参数:
java -XX:+PrintFlagsFinal -Xss128k T
java -XX:+PrintCommandLineFlags -version //以命令行的形式查看JVM参数
-Xss 等价于 -XX:ThreadStackSize //栈空间大小,512K~1024K
-XX:MetaspaceSize=1024m //元空间不在虚拟机中,而是使用本地内存
-XX:+UseParallelGC //并行垃圾回收器
//配置参数--
-XX:+PrintCommandLineFlags
-XX:InitialHeapSize=265650752
-XX:MaxHeapSize=4250412032
-XX:+PrintCommandLineFlags
-XX:+UseCompressedClassPointers
-XX:+UseCompressedOops
-XX:-UseLargePagesIndividualAllocation
-XX:+UseParallelGC
//配置JVM参数:-Xms10m -Xmx10m -XX:+PrintGCDetails
/**
* @author luffy
**/
public class GCDemo {
public static void main(String[] args){
System.out.println("GC");
Byte[] bytes = new Byte[20*1024*1024];
}
}
图1-1 GC日志信息.png
-XX:SurvivorRatio=8 //新生代Eden和Survivor(From/To)比例,8:1:1。
-XX:NewRatio=2 //新生代:老年代 = 1:2,老年代的占比。(堆内)
图1-2 堆内存.png
-XX:MaxTenuringThreShold=15 //设置垃圾最大年龄 0~15