我一直在申请,我一直在跟踪其内存使用情况。该应用程序的内存约为58,676 K,如下所示。
这是我的GUI。
那个关闭按钮有一个使该面板不可见的功能。
private final ActionListener closeButtonAL = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
timeUtilities.getPanel().setVisible(false);
}
};
我还有一个按钮,可以再次显示面板。
private final ActionListener showPanelAL = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
timeUtilities.getPanel().setVisible(true);
}
};
在应用程序开始显示之前,该面板已经初始化。
我的问题是,只需让GUI出现并再次关闭它就可以再次增加应用程序的内存使用量。
这不是某种内存泄漏吗?无论答案是什么,我该如何预防此事?
答案 0 :(得分:1)
不,这可能不是内存泄漏的迹象。因为当您关闭并多次打开gui时,您的应用可能会创建并丢弃某些对象。但是JVM可能还没有垃圾收集它们。如果你想要真实的图片使用分析工具。 GC运行后,随着时间的推移进行堆转储。这将告诉你内存中还剩下什么。
这可以帮助您缩小寻找可能的内存泄漏的范围。
最简单的分析工具。
答案 1 :(得分:1)
您应该使用分析器来查找内存泄漏。
在NetBeans中,"运行项目"旁边的顶部;和#34;调试项目"按钮是一个"个人资料项目"按钮(Alt-F2)。
首先,它可能会要求您进行校准或其他事情。
Afterwars,您可以选择分析CPU或内存。如果单击Memory,请选中" Simple,"然后单击“运行”,您可以运行项目并查看使用内存的内容。