Boa tarde galera,
estou com um probleminha de memória em uma consulta que tenho no meu sistema. A máquina tem apenas 128 MB então os recursos de memória são realmente poucos.
Identifiquei que o problema estava nesse método que faz umas busca por produtos e mostra em uma JTable. O que acontece é que como o ResultSet é grande utilizando um medidor de memória notei que acontece um salto de 8 MB pra 70 MB após a execução da Query. Até ai normal. O problema e que depois disso esse espaço não é mais liberado.
Gostaria de saber se tem alguma forma seja via código ou via parâmetro para a JVM que permita liberar esse espaço.
OBS: Já chamei o método clear do EntityManager e também já apelei pro System.gc() e não resolveu.
Agradeço qualquer dica ou esclarecimento.
Giu
public List<Produto> pesquisaProdutos() {
Query qy = em.createNamedQuery("Produto.pesquisaProdutos");
try {
// JVM alocando 8 MB
return (List<Produto>) qy.getResultList(); // ResultSet com 30.000 registros aproximadamente
// JVM alocando 70 MB - JVM não desaloca mais esse espaço fazendo com que a máquina fique lenta
} catch (Exception e) {
return null;
}
}