2012-03-08 131 views
-3

我正在寻找java程序中的一些内存泄漏。java内存泄漏修复

我有一个类,名为ABCConfigurationABCConfigurationInfo类。 ABCConfigurationInfo是一类有一些private static final String常数并保留一个私人TreeMap对象。 ABCConfiguration是一个配置类,它保持ABCConfigurationInfo类(private ABCConfigurationInfo fInfo;)的对象。

当多次执行程序时,我发现(使用MAT)ABCConfigurationInfo的对象不断增加。我没有修复。

这是我已经改变了

private ABCConfigurationInfo fInfo 

private static ABCConfigurationInfo fInfo. 

在此之后,我已执行多次检查后的ABCConfigurationInfo的对象。它变得稳定,一个对象正在创造。这是一个真正的修复吗?你能不能请教我。

我知道,有了这些信息很难说。

在此先感谢

+0

其修复只有在静态适合您的方案:) 尝试添加代码,以便我们可以帮助您找到问题 – 2012-03-08 15:11:52

+0

我很惊讶你的配置是如此复杂,它占用的内存量显著。这是否真的在你的程序中有很大的不同? – 2012-03-08 15:16:22

回答

0

如果您可以承担在您的所有ABCConfiguration对象上具有相同的fInfo实例,那么它是一个有效的修复程序。

+0

感谢您的信息。 – user867662 2012-03-08 15:41:00

1

在原来的版本中,有一个ABCConfigurationInfo每一个ABCConfiguration。在您的static版本中,整个应用程序只有一个ABCConfigurationInfo;它由所有ABCConfiguration对象共享。我们不知道这是否合适 - 只有你这样做。不过,这是一个很大的改变,所以你当然需要知道你在做什么。