2012-03-08 3 views
-3

Я ищу некоторые утечки памяти в программах Java.исправление утечки памяти java

У меня есть класс под названием ABCConfiguration и ABCConfigurationInfo классы. ABCConfigurationInfo - это класс, который имеет некоторые константы private static final String и сохраняет частный объект TreeMap. ABCConfiguration - это класс конфигурации, который хранит объект класса ABCConfigurationInfo (private ABCConfigurationInfo fInfo;).

При выполнении программы несколько раз я нашел (используя MAT), что объекты ABCConfigurationInfo продолжают увеличиваться. У меня нет исправления.

То есть я изменил

private ABCConfigurationInfo fInfo 

в

private static ABCConfigurationInfo fInfo. 

После этого я проверил объекты ABCConfigurationInfo после нескольких раз исполнения. Он становится стабильным и создается один объект. Это реальное решение? Не могли бы вы посоветовать мне.

Я знаю, что с такой большой информацией трудно сказать.

Заранее спасибо

+0

его исправить, только если статический подходит вашему сценарию :) попробуйте добавить свой код, чтобы мы могли помочь вам найти проблему. –

+0

Я удивлен, что ваша конфигурация настолько сложна, что занимает значительную часть памяти. Действительно ли это имеет большое значение в вашей программе? –

ответ

0

Если вы можете позволить себе иметь тот же экземпляр fInfo на всех ваших объектах ABCConfiguration, то это действительное исправление.

+0

Спасибо за информацию. – user867662

1

В исходной версии есть один ABCConfigurationInfo для каждого ABCConfiguration. В вашей версии static есть всего ABCConfigurationInfo для всего приложения; он разделяет все объекты ABCConfiguration. Мы не знаем, подходит ли это или нет - только вы. Это большое изменение, поэтому, конечно, вам нужно знать, что вы делаете.

Смежные вопросы