OutOfMemory

4 respostas
B

Galera,

Tenho uma thread que fica chamando operações de um Web Service de 10 em 10 segundos. Crio as instancias dos objetos e depois de carregar os dados atribuo null as instâncias. Porém minha aplicação, depois de um certo tempo lança a seguinte exceção OutOfMemory (heap space). Já configurei a JVM para usar 256 mb de memória máxima, mas o problema que minha aplicação roda em máquinas bem modestas.

Minha thread (resumida):

public class CarregaDados extends Thread
    {
        
        public void run()
        {
            
            while (true)
            {
                
               // Chama a operação 
               wsListaSitAtual = new ListaSituacaoAtualWS();
               ...............................

               // Depois de carregar os dados em um JTable
               wsListaSitAtual = null;
               // Chama o Garbage Collector
                Runtime.getRuntime().gc();
            }
        }
     }

E estou chamando esta thread (CarregaDados) no construtor do meu formulário princiapal.

4 Respostas

P

Tente isso!

public class CarregaDados extends Thread
    {
        
        public void run()
        {
            ListaSituacaoAtualWS  wsListaSitAtual;
           
            while (true)
            {
                
            wsListaSitAtual = new ListaSituacaoAtualWS();
            }
        }
     }
P

Tente isso!

public class CarregaDados extends Thread
    {
        
        public void run()
        {
            ListaSituacaoAtualWS  wsListaSitAtual;
           
            while (true)
            {
                
            wsListaSitAtual = new ListaSituacaoAtualWS();
            }
        }
     }
B

Mas já está assim!

ViniGodoy
  1. Baixe o Netbeans, e o profiler do Netbeans;
  2. Analise sua aplicação rodando e veja qual é a classe que está consumindo memória;
  3. Procure referências a essa classe em todos os locais possíveis.

Sem um profiler, fica difícil saber onde está o problema.

Criado 31 de outubro de 2007
Ultima resposta 31 de out. de 2007
Respostas 4
Participantes 3