Java 堆转储文件 (.hprof) 比 eclipse MAT 中的堆大小大得多
Java heap dump file (.hprof) is much larger than heap size in eclipse MAT
我在使用 Java 的生产环境中经常遇到 full GC 问题,我怀疑内存是由网络库分配的,用于缓冲 TCP 请求结果。
当内存使用率很高(大约 8GB)时,我转储了 Java 堆。我尝试用eclipse MAT分析.HPROF文件,文件大约8GB。
但在 eclipse MAT 中,总堆大小约为 200 MB,因此我无法找到哪些对象占用了 8GB 堆内存。
由于 eclipse MAT 没有显示完整的堆转储内容,我不知道如何找到应用程序占用这么多内存的原因。
如果你使用MAT内存分析器打开hprof转储,可能是堆的其余部分是不可访问的对象,MAT默认隐藏了这些对象,见
我在使用 Java 的生产环境中经常遇到 full GC 问题,我怀疑内存是由网络库分配的,用于缓冲 TCP 请求结果。
当内存使用率很高(大约 8GB)时,我转储了 Java 堆。我尝试用eclipse MAT分析.HPROF文件,文件大约8GB。
但在 eclipse MAT 中,总堆大小约为 200 MB,因此我无法找到哪些对象占用了 8GB 堆内存。
由于 eclipse MAT 没有显示完整的堆转储内容,我不知道如何找到应用程序占用这么多内存的原因。
如果你使用MAT内存分析器打开hprof转储,可能是堆的其余部分是不可访问的对象,MAT默认隐藏了这些对象,见