堆转储分析

问题描述 投票:0回答:1

我有一个带有16G内存的Linux机器,并运行带有应用程序的JBoss 7.1.0 EAP服务器。我们得到80%的内存警报使用率。通过分析MAT中的堆转储,我们发现保留的堆为3GB,无法访问的对象为7GB。我的JVM的配置为Xms = 4G XmX = 12G我真的需要担心吗?我应该专注于哪一部分分析?

java memory-management java-8 memory-leaks jvm
1个回答
-1
投票

要在Java虚拟机中运行垃圾收集器:

System.gc();

Runtime.getRuntime().gc();

调用{[[[gc]​​>}方法表明,Java虚拟机将努力回收未使用的对象,以使它们当前占用的内存可供Java虚拟机重新使用。当控件从方法调用返回时,Java虚拟机将尽最大努力从所有未使用的对象中回收空间。无法保证此工作将回收任何特定数量的未使用对象,回收任何特定数量的空间,或在方法返回之前或之前在任何特定时间(如果有的话)完成。


另请参见:

Guide to System.gc() | baeldung

Class System | javadoc oracle

© www.soinside.com 2019 - 2024. All rights reserved.