繁体   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