記憶體洩漏場景
長生命週期的物件持有短生命週期物件的參考就很可能發生記憶體洩漏,儘管短生命週期物件已經不再需要,但是因為長生命週期持有它的引用而導致不能被回收,這就是Java中記憶體洩漏的發生場景。
1、查看過程中的CPU和記憶體佔用:
top –H –p 58527
2、查看伺服器記憶體。
df -h 查看磁盘情况 du -h --max-depth=1 文件目录占用资源情况。
3、查看記憶體、快取區、使用和閒置。
free -m
S0C:在年輕代中第一個survivor(存活區)的容量(位元組)
倖存區)的容量(位元組)
S0U:年輕世代中第一個survivor(倖存區)目前已使用空間(位元組)
S1U:年輕代中第二個survivor(倖存區)目前已使用空間(位元組)
EC:年輕代中Eden(伊甸園)的容量(位元組)
EU:年輕代中Eden(伊甸園)目前已使用空間(位元組)
OC:Old代的容量(位元組)
OU:Old代目前使用空間(位元組)
PC:Perm (持久代)的容量(位元組)
PU:Perm(持久代)目前已使用空間(位元組)
YGC:從應用程式啟動到取樣時年輕代中gc次數
YGCT:從應用程式啟動到取樣時年輕代中gc所用時間(s)
FGC:從應用程式啟動到取樣時old代(全gc)gc次數
FGCT:從應用程式啟動到取樣時old代(全gc)gc所用時間(s)
GCT:從應用程式啟動到取樣時gc用的總時間(s)
4、查看執行程式資訊。
jstack 2829 > 1.log grep -A 1'java.lang.Thread.State' jstack.log | wc -l
5、下載堆檔案分析程式碼Dump。
以上是java怎麼檢查記憶體洩漏的詳細內容。更多資訊請關注PHP中文網其他相關文章!