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()被顯示調用