jvm参数记录(持续更新)

java -XX:+PrintFlagsInitial命令查看jvm本机的初始化参数

-Xms:堆最小内存分配
-Xmx:堆最大内存分配
将堆的最小值-Xms参数与最大值-Xmx参数设置为一样即可避免堆自动扩展

-XX:+HeapDumpOnOutOf-MemoryError:可以让虚拟机在出现内存溢出异常的时候Dump出当前的内存堆转储快照以便进行事后分析

-Xoss:设置本地方法栈大小,由于Hotspot虚拟机不区分本地方法栈和虚拟机栈,所以此参数无效
-Xss:设置虚拟机栈大小

元空间相关

  • -XX:MaxMetaspaceSize:设置元空间最大值,默认是-1,即不限制,或者说只受限于本地内存大小。

  • -XX:MetaspaceSize:指定元空间的初始空间大小,以字节为单位,达到该值就会触发垃圾收集
    进行类型卸载,同时收集器会对该值进行调整:如果释放了大量的空间,就适当降低该值;如果释放了很少的空间,那么在不超过-XX:MaxMetaspaceSize(如果设置了的话)的情况下,适当提高该值。

  • -XX:MinMetaspaceFreeRatio:当进行过Metaspace GC之后,会计算当前Metaspace的空闲空间比,如果空闲比小于这个参数,那么虚拟机将增长Metaspace的大小。在本机该参数的默认值为40,也就是40%。设置该参数可以控制Metaspace的增长的速度,太小的值会导致Metaspace增长的缓慢,Metaspace的使用逐渐趋于饱和,可能会影响之后类的加载。而太大的值会导致Metaspace增长的过快,浪费内存。

  • -XX:Max-MetaspaceFreeRatio:当进行过Metaspace GC之后, 会计算当前Metaspace的空闲空间比,如果空闲比大于这个参数,那么虚拟机会释放Metaspace的部分空间。在本机该参数的默认值为70,也就是70%。

  • -XX:MaxMetaspaceExpansion :Metaspace增长时的最大幅度。在本机上该参数的默认值为5452592B(大约为5MB)。

  • -XX:MinMetaspaceExpansion: Metaspace增长时的最小幅度。在本机上该参数的默认值为340784B(大约330KB为)。

-XX:MaxDirectMemorySize:指定直接内存大小,如果不去指定,则默认与Java堆最大值(由-Xmx指定)一致

你可能感兴趣的:(jvm源码阅读)