题目:工作中用过的JVM常用基本配置参数有哪些?
文章目录
-Xms、-Xmx
-Xms(-XX:InitialHeapSize):设置堆的初始空间大小,默认为物理内存的1/64
-Xmx(-XX:MaxHeapSize ):设置堆的最大空间大小,默认为物理内存的1/4
-Xss
-Xss(-XX:ThreadStackSize ):设置单个线程栈的大小,一般默认为512k~1024k
windows下显示结果如下:
我使用的是mbp,显示出为1024.
windows为什么默认为0?代表用的是系统出厂默认值。(下图为官网描述信息)
-Xmn
-Xmn:设置年轻代大小
-XX:MetaspaceSize
设置元空间大小,使用本地内存,永久代在堆里面,默认情况下,元空间仅受本地内存的限制。
典型配置案例
-Xms128m -Xmx4096m -Xss1024k -XX:MetaspaceSize=512m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:UseSerialGC
XX:+PrintGCDetails
打印垃圾回收具体信息
GC日志信息:
Full GC日志信息:
下面一些只需要在面试中会说,在实际不太需要设置
XX:SurvivorRadio
调整Eden:S0:S1的比例,默认为8:1:1,S0和S1相等,调整的是Eden和S之间的比例。
XX:NewRadio
配置年轻代与老年代在堆结构的占比
默认新生代占1,老年代占2,年轻代占整个堆的1/3.
-XX:NewRadio=4
XX:MaxTenuringThreshold
设置垃圾的最大年龄。
默认为15