Consumindo muita memoria! help-me

Bom dia senhores.

fiz uma app java… que trabalha com grandes listas
ele lê um arquivo com codigos aproximadamente 100 mil. e tem que calcular tudo e apresentar na tela
mas quando chega em 1 mil… começa a ficar lento d+
e a memoria ta sumindo la pra 47mb
o que eu faço pra deixar mais rápido ?

ja tentei durando os calculos… toda fez que chegar em 1 mil… ele gravar num arquivo tmp as respostas… depois quando terminar tudo ele lê o arquivo e exibe… mas nao adiantou nada… continua lento e consumindo mt ! (isso adianta alguma coisa? é certo ?)

bem como posso resolver esse problema?

obrigado

Aumente o tamanho da sua heap, e reveja sua lógica.

ja aumentei para -Xms64m -Xmx512m

A lógica esta correta.
mas estou trabalhando com calculos em uma lista de 100 mil, nao sei como fazer.

rbroz85,

O que são esses códigos? que tipo de dados?

Você faz várias vezes a cahamada para abrir e ler dados do arquivo?
Após a leitura você está fechando o arquivo? está desalocando os objetos não utilizados?

Tive um problema semelhante outro dia desses, e revisando o código percebi que esqueci de fechar um ResultSet.
Minha aplicação estava chegando perto dos 50mb. Nisso eu estava lendo de um banco e caregando em torno de 150 imagens (10k cada) outras informações de cada registro.

Dê uma revisada no código…

Abração.

Acredito que o seu problema não esteja nesses 100 mil informações que vc acredita estar sobrecarregando, mas sim no seu código que não esta sabendo lidar com as informações, ou pq algumas estão nulas e ou inconsistentes.

Verifique isso! antes de mexer no heap.

Já tive alguns problemas relacionados a isso e todos na verdade eram inconsistencias no proprio código.

Utilize o profiling do netbeans para ver qual é o ponto que está sobrecarregando!

www.netbeans.org --> para mais informações

oi… pow é uma lista de numeros de ate 7 digitos…
onde eu ferifico o codigo identificador.
tenho duas opções verificar o se o digito esta correto… ou criar novo digito.

eu carrego um txt com os digitos em um List<String[]>
(pode ter mais de uma coluna)
e apresento as 5 primeira linhas no jtable…
e escolho a coluna… e mando (verificar ou criar)

entao eu disparo uma thread pra fazer isso… pegando o primeiro elemento da minha list<String[]> e calculo pra ver se estar de acordo e salvo em outra lista pra apresentar tudo em um jtable. para depois salvar…

os 1200 primeiros vao em segundos… depois começa a baixar a velocidade e almentar a memoria…

ja tentei salvar cada 1000 em um arquivo temp… e liberar minha list de respostas. mas nao adianta continua lento
nao sei o que faço

os dados nao estao inconsistentes… pois só sao numeros… e esiste um tratamento. pra nao entrar caracteres

Você está copiando o valor ou só mantendo a referência?

Não faz sentido consumir tanta memória. Será que não está ficando nenhum objeto pendurado?

Cole o pedaço do código que faz a verificação e joga de uma lista para outra para dar uma olhada.

Abraço.

verifica que fica na thread

<desculpe tive que remover o código aki postado>

putz crilo !

concegui

na hora de chamar o metodo getdigito…
no caso eu tenho 2

com que faz concatenação de string…
isso deixou muito lento…
putz agora ta igual uma bala

muito obrigado a todos

É isso aí brother.

Abraço.