簡體   English   中英

Java堆轉儲(hprof文件)比駐留內存小得多

[英]Java heap dump (hprof file) is much smaller that resident memory

當運行top時看到我的RES是4.7GB,這很好,因為我設置-Xmx8g ,但是當我將它轉儲到hprof文件時,我得到大約半個gig文件。

不是假設包含所有內存嗎? 順便說一句,即使我強制GC(使用jcmd)我仍然看到4.7G常駐。

堆轉儲文件(hprof)不是內存轉儲,而是對象堆轉儲。 它只包含java對象。

堆轉儲文件不包括 - 內存的非堆區域(例如代碼緩存,元空間等) - 某些堆對象(例如類)不包含在保留但未在堆中使用的無轉儲區域中

在您的情況下,您可能有很多未使用的堆空間。 GC不會將已用空間返回到OS,因此RES大小保持為4.7G

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM