jvm参数概述
java启动参数共分为三类;
其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;
其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;
非Stable参数(-XX)介绍
大致可以松散的聚合成三类:
1.性能调优类型参数
-XX:-Xss
:规定了每个线程虚拟机栈及堆栈的大小,一般情况下,256k是足够的,此配置将会影响此进程中并发线程数的大小。
-XX:-Xms
:表示初始化JAVA堆的大小及该进程刚创建出来的时候,他的专属JAVA堆的大小,一旦对象容量超过了JAVA堆的初始容量,JAVA堆将会自动扩容到-Xmx大小。
-XX:-Xms
:表示java堆内存最小值
-XX:-Xmx
:表示java堆可以扩展到的最大值,在很多情况下,通常将-Xms和-Xmx设置成一样的,因为当堆不够用而发生扩容时,会发生内存抖动影响程序运行时的稳定性
-XX:SurvivorRatio
:默认等于8,Survivor就是新生代中from和to总共的区域,新生代中还有伊甸园区域,这个参数表示伊甸园区域和to或者和from区域大小的比例,from和to的空间大小是相同的,默认8就是表示新生代中内存区域划分了10份,伊甸园内存大小占据了其中的8份
-XX:NewRatio
: 默认等于2,表示整个堆内存空间划分了三份,老年代空间占据了两份
2.调试类型参数
-XX:+PrintGCDetails
打印GC信息
3.行为类型参数
-XX:+UseSerialGC
使用串行回收器进行回收,这个参数会使新生代和老年代都使用串行回收器,新生代使用复制算法,老年代使用标记-整理算法,它是一个单线程收集器,默认开启
-XX:+UseParNewGC
Parallel是并行的意思,ParNew收集器是Serial收集器的多线程版本,使用这个参数后会在新生代进行并行回收,老年代仍旧使用串行回收,新生代S区任然使用复制算法
-XX:+UseParallelOldGC
新生代和老年代都使用并行收集器
例子
-Xms10m -Xmx10m -XX:+PrintGCDetails -XX:+UseSerialGC
行为类型参数资料
https://blog.csdn.net/leo187/article/details/88920036
性能调优类型参数资料
https://blog.csdn.net/qq_33229669/article/details/106104834
https://blog.csdn.net/qq_33229669/article/details/106105517