天天看点

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

Java8的元空间:

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

因此默认情况下,元空间大小仅受本地内存限制。

常用参数:

-Xms

:初始内存大小,默认物理内存1/64,等价于

-XX:InitialHeapSize

-Xmx

:最大分配内存,默认物理内存1/4,等价于

-XX:MaxHeapSize

-Xss

:设置单个线程栈的大小,等价于

-XX:ThreadStackSize

E:\ideaProjects\mq>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收集细节

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

-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

设置年龄最大年龄,要在0-15之间

继续阅读