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