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指定)一致

经验分享 程序员 微信小程序 职场和发展