【问题标题】:java memory leak fixingjava内存泄漏修复
【发布时间】:2012-03-26 01:25:38
【问题描述】:

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

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

多次执行程序时,我发现(使用 MAT)ABCConfigurationInfo 的对象不断增加。我没有解决办法。

那是我改了

private ABCConfigurationInfo fInfo 

private static ABCConfigurationInfo fInfo. 

在此之后,我在多次执行后检查了ABCConfigurationInfo的对象。它变得稳定,并且正在创建一个对象。这是一个真正的修复吗?能否请教一下。

我知道,有这么多信息很难说清楚。

提前致谢

【问题讨论】:

  • 只有在静态适合您的场景时才可以修复 :) 尝试添加您的代码,以便我们帮助您找到问题
  • 我很惊讶您的配置如此复杂以至于占用了大量内存。这真的会对您的计划产生很大影响吗?

标签: java memory memory-leaks


【解决方案1】:

在您的原始版本中,每个ABCConfiguration 对应一个ABCConfigurationInfo。在您的static 版本中,整个应用程序只有一个ABCConfigurationInfo;它由所有ABCConfiguration 对象共享。我们不知道这是否合适——只有你知道。不过,这是一个很大的变化,因此您当然需要了解自己在做什么。

【讨论】:

    【解决方案2】:

    如果您负担得起在所有 ABCConfiguration 对象上使用相同的 fInfo 实例,那么它是一个有效的修复方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-12
      • 2013-07-29
      • 2017-07-29
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 2015-09-29
      相关资源
      最近更新 更多