你平时工作用过的JVM常用基本配置参数有哪些?

Java8的元空间:

Java8中,永久区(java7)PermGen被移除,被一个称为元空间的区域所取代,元空间本质和永久区类似,都是对JVM规范中方法区的实现,他们之间的最大区别在于:永久区使用的是JVM的堆内存,而元空间并不在虚拟机中,他使用的是本机物理内存。 因此默认情况下,元空间大小仅受本地内存限制。

JVM常用参数:

-Xms:初始内存大小,默认物理内存1/64,等价于-XX:InitialHeapSize 
-Xmx:最大分配内存,默认物理内存1/4,等价于-XX:MaxHeapSize 
-Xss:设置单个线程栈的大小,等价于-XX:ThreadStackSize

E:ideaProjectsmq>jinfo -flag ThreadStackSize 12360 #查看运行程序的栈大小 
-XX:ThreadStackSize=0 #0表示使用默认值

-Xmn:设置年轻代大小, 
-XX:MetaspaceSize:设置元空间大小

例如:java -Xms128m -Xmx4096m -Xss1024 -XX:Metaspacesize=512m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseSerialGC HelloGC

-XX:+PrintGCDetails 打印GC收集细节 GC/FullGC image名称:GC前内存占有->GC后内存占用(该区内存总大小)

-XX:SurvivorRatio:设置新生代中eden和s0/s1空间的比例,例如:-XX:SurvivorRatio=4 表示4:1:1,默认8:1:1 
-XX:NewRatio:设置老年代的占比,剩下的1给新生代。例如:-XX:NewRatio=4,表示新生代:老年代=1:4,年轻代占整个堆的1/5 
-XX:MaxTenuringThreshold 设置s0和s1复制的年龄最大年龄,要在0-15之间

image

https://img2018.cnblogs.com/blog/987988/201908/987988-20190828143007013-1083797672.png

原文地址:https://www.cnblogs.com/xhyouyou/p/12465420.html