2012-03-29 2 views
1

у меня в приложении Java поток, который запустить While (True) цикл с сна (+50000) (5 минут) внутри. этот поток загружает XML-файл перед циклом, потому что мне нужно проанализировать некоторую информацию из него на первой итерации.Восстановить объект SAXBuilder из памяти

 //Loding XML File 
    org.jdom.Document document = null; 
    SAXBuilder sxb = new SAXBuilder(); 
    try 
    { 
     document = sxb.build(new File("Configuration/Map.xml")); 
    } 
    catch(Exception e){} 
    org.jdom.Element racine = document.getRootElement(); 
    //End loding XML File 

От 2 итерации вероятности использования файла XML уменьшить так много, поэтому держать файл XML в памяти не имеет никакого смысла (так как файл имеет 103000 линии/3 MB). поэтому я решил извлечь его из памяти и загрузить его каждый раз, когда мне это нужно. Проблема заключается в том, что я не могу найти, как извлечь документ и racine объект из памяти, так как Java автоматически использует сбор мусора. И скажите, если это хорошая практика, чтобы получить оптимизированное решение.

ответ

1

Если вы хотите, чтобы ваш объект собирался с мусором, я думаю, что сделать переменную Null можно.

document = null; 
sxb = null; 
racine = null; 
+0

Спасибо, именно ** Если вы хотите, чтобы ваш объект право на Garbage Collection, назначить свою ссылочную переменную в нуль. ** Но мне интересно, если мое решение является хорошим. –

+0

Это решение будет работать как GC работает в java. GC собирает объекты, которые уже недоступны. Таким образом, вы используете свои документы, sxb, racine и т. Д. И устанавливаете их Null, как только вы закончите с ними. Предоставление им права собираться GC. – amitp

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