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 ?)
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.
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!
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