Estou com um problema muitíssimo chato de vazamento de memória.
Basicamente, meu sistema trabalha com muitos ArrayList. É dao retornando ArrayList, é TableModel exibindo ArrayList, É ArrayList de ArrayList… enfim. Pelo profiler do NetBeans, vejo que, ao executar uma função, o uso de memória não volta ao estágio anterior. Usando o jmap e jhat vejo que a classe que está “vazando” é justamente a classe usada como conteúdo do ArrayList. Só não consigo entender em que momento eu falhei! Sério, não consigo entender. Como esse sistema vem da época que eu comecei a aprender java, sinceramente não me preocupei muito em “limpar” variáveis e essas coisas.
Por exemplo: um dao retorna um array que é passado à um tableModel. Ótimo, adorei a idéia. Mas ele nunca é limpado da memória. Porque?
Gostaria de saber se alguém tem algumas dícas e “boas práticas” no uso de ArrayLists para compartilhar comigo, pra ver se tenho alguma luz!
Obrigado e até mais.