內(nèi)存區(qū)域
棧
-Xss
堆
-Xms
最小值
-Xmx
最大值
-Xmn
新生代最小
-XX:newSize
新生代最小值
-XX:MaxNewSize
新生代最大值
永久代(元空間)
-XX:PermSize
-XX:MaxPermsize
1.7及之前最小值和最大值
-XX:MetaspaceSize
-XX:MaxMetaspaceSize
1.8及之后
方法區(qū)移動至運行時常量池之外,即元空間
直接內(nèi)存
- 不是虛擬機(jī)運行時數(shù)據(jù)區(qū)的一部分,也不是java虛擬機(jī)規(guī)范定義的內(nèi)存區(qū)域
-
NIO
中會頻繁使用這塊區(qū)域,java堆內(nèi)可以使用directByteBuffer
對象直接引用操作 - 此區(qū)域不受java堆大小限制星持,但也受本機(jī)總內(nèi)存限制嗓袱,可以通過
MaxDirectMemorySize
設(shè)置遏插,默認(rèn)和堆內(nèi)存最大值一樣角塑,所有也會OOM
ByteBuffer b = ByteBuffer.allocateDirect(1024 * 14);
逃逸分析
-server
使用server
模式運行(只有這個有逃逸分析)镜遣,還有client
模式铺遂,mix
表示自動判斷
-Xmx10M -Xms10m
堆大小
-XX+PrintGC
打印GC日志
-XX:-EliminateAllocations
標(biāo)量替換
-XX:-UseTLAB
事先為每個線程分配一個私有空間ThreadLocalAllocBuffer衫哥,可以避免線程new對象時使用同一區(qū)域而加鎖導(dǎo)致串行