鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ 用Visual VM sampler查看java進(jìn)程,heap dump里的ch

用Visual VM sampler查看java進(jìn)程,heap dump里的char[]和int[]的個(gè)數(shù)和大小為何那么大?

用Visual VM sampler查看java進(jìn)程,如圖所示
clipboard.png

為何char[]有將近200萬個(gè)?而且每個(gè)大小400多字節(jié)
int[]的大小則將近1KB

而用其heap dump生成文件然后再load看則是

clipboard.png

兩者數(shù)據(jù)為何差距那么大?

回答
編輯回答
別逞強(qiáng)

dump是一次內(nèi)存快照,相當(dāng)于一張照片

sampler基于特定時(shí)間間隔的多次采樣,相當(dāng)于小視頻

2018年5月8日 05:04
編輯回答
孤影

通??紤],字符串對(duì)象中就有一個(gè) char[]數(shù)組,其他對(duì)象中也可能封裝char[]數(shù)組,你可以檢查一下你的String對(duì)象有多少個(gè),算上其他可能封裝char[]數(shù)組的對(duì)象,也差不多這個(gè)數(shù)值了。
同理int[]也是。

另外,不推薦用VisualVM查看heap dump,基本上沒什么太好的幫助。推薦使用MemoryAnalyzer(MAT)查看堆dump

2018年7月6日 04:06