天天看點

jvm

jvm相關

-xx:+printgcdetails 列印gc日志在控制台

-xss 設定棧大小

-xmx 設定最大堆大小:

-xms 設定最小堆大小:jvm啟動時所占用的作業系統内容大小。

java運作時先被配置設定-xms制定的記憶體大小,并嘗試在這麼大小的記憶體中運作程式,确實無法滿足時才會想作業系統申請更多的記憶體,直到達到-xmx指定的最大内容,如果超過最大堆記憶體大小,抛出outofmemoryerror

通常将最大堆記憶體和最小堆記憶體設定為相同,這樣減少minijor gc次數,甚至引發full gc,

方法區:存放類的類型資訊,常量池,方法資訊等

方法區也叫永久區(持久代),-xx:maxpermsize設定最大值,

-xx:permsize設定初始大小

堆=新生代+老年代

新生代:-xmn ,一般為整個堆空間的1/3

如果需要大量線程并發執行,設定較小的堆和棧值能提高線程數量

heap = { old + new = {eden, from, to} },old 即 年老代(old generation),new 即 年輕代(young generation)

可能導緻full gc的情況:

· 年老代(tenured)被寫滿

· 持久代(perm)被寫滿

· system.gc()被顯示調用