Desempenho com processamento de arquivos

Boa tarde!

Galera,

 Desenvolvi um aplicativo usando JPA que processa vários arquivos texto

e jogam o conteúdo no banco. O problema é que ele perde desempenho com o tempo.
Explico: no início ele demora uns 1 ou 2 segundos para processar cada arquivo,
e nos últimos arquivos ( um total de 200 mb ) demora quase 10 segundos.

 Percebi que no taskmanager do windows a memória consumida do programa (java.exe)

começa em 30mb e pula para 80mb no final do processamento. Tentei dar um System.gc()
mas não resolveu.

 Acredito que o programa fique lerdo devido a quantidade de strings que ele

manipula (tem que ler linha a linha do arquivo e quebrar em várias partes).

 Alguém ai tem uma solução, ou já passou por problema semelhante?

Kara, eu ja passei por uma situação que acho q vai te ajudar…

Nas Questoes da maratona de programação os problemas sao testados com arquivos de texto e muitas vezes um código que tinha cin , 1 if e um else e cout apresentava TLE(tempo limite de execução) excedido… ai a gente desenvolveu um algoritmo que le os aquivos txt todos de uma vez… com fread… e armazena os bytes num buffer… e vai processando eses buffer… isso reduz drásticamente o tempo de execução do programa mas tarde eu t passo o algoritmo e voce ve acelera o seu processo…

Leo, valeu pela dica, mas acredito que não resolverá o meu problema, pois
já estou utilizando a classe BufferedReader. Eu marquei o tempo que o algoritmo
está demorando para carregar o arquivo ( eu carrego ele primeiro em uma List ),
e está demorando no máximo 100msec, que é menos de 2% do tempo total de processamento
de cada arquivo.

O problema deve ser com o pool de strings. Mas valeu pela ajuda.