Fórum Vazamento de mamoria #449134

22/07/2013

0

A todos, boa tarde!

Tenho um projeto que esta consumindo muita memoria. O projeto tem um ArrayList<Cliente> com aproximadamente 1.000.000 de clientes, porem após limpar a lista "ArrayList.clear" a memoria alocada não é liberada e isso acaba impactando na performance do restante da aplicação. Já tentei chamar o GC, mas a memoria só é liberara quando o projeto finaliza. Existe alguma forma de desalocar os itens da lista para que possam ser removidos pelo GC?

A acredito que vale a pena mencionar que a referencia em questão é um atributo da classe: clientes ArrayList<Cliente>.

Pela atenção muito obrigado!
Andre Ferreira

Andre Ferreira

Responder

Posts

23/07/2013

Gabriel Simas

Fala André,

Bem, o que precisamos fazer é forçar o GC a agir, como nunca sabemos bem o momento em que o mesmo age, você pode usar método clear, que esvazia o array, mas o mantém no aguardo de novas gravações e depois disso, você força o GC a entrar colocando sua arrayList = null. Um exemplo:

listaTeste.clear();
listaTeste = null;


Isso vai forçar o GC e ser executado por ser uma grande quantidade de dados.

Verifique isso e nos informe para que possamos te ajudar melhor.

Forte Abraço, pode contar com a gente no que precisar.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar