Olá galera, eu tenho um processamento de arquivos, quando eu coloco, 1,2,3,…10,20,30 arquivos ele roda perfeitamente, porém, quando eu coloco uns 500 arquivos para processar de uma vez, o processamente fica leeento, se arrastando, qual a solução para resolver isso? aumentar a capacidade do JVM? (não dá outOfMemory, ele apenas fica lentão)… se for esta a solução como eu verifico a capacidade do meu JVM? Qual é a padrão? eu já achei como modificar, mas não sei como verificar.
segue abaixo um trecho do codigo do processamento:
[code]public void processarArquivosArrecadacao(){
layoutEmCache = new HashSet<LayoutCampo>();
formaPagamentoEmCache = new HashSet<FormaPagamentoArrecadacao>();
getLog().setLevel(Level.DEBUG);
getLog().debug("Iniciando o processamento dos arquivos de retorno...");
ConfiguracaoSistema configuracaoSistema = configuracaoSistemaService.buscarConfiguracaoSistema();
List<File> arquivosAProcessar = FileUtil.getFileByPath(configuracaoSistema.getDiretorioLeitura(), "*.*");
getLog().debug("Encontrado " + arquivosAProcessar.size() + " para processar...");
List<String> listaNomeArquivoDono = criarListaNomesArquivo(arquivosAProcessar);
moverArquivosDiretorioTemp(configuracaoSistema, arquivosAProcessar);
arquivosAProcessar = FileUtil.getFileByPath(configuracaoSistema.getDiretorioTemp(), "*.*");
realizarProcessamentoArquivo(arquivosAProcessar, configuracaoSistema, listaNomeArquivoDono);
}
private void realizarProcessamentoArquivo(List arquivosAProcessar, ConfiguracaoSistema configuracaoSistema, List listaNomeArquivoDono) {
for (File arquivo : arquivosAProcessar) {
if (!scheduleEDonoArquivo(arquivo, listaNomeArquivoDono)) {
continue;
}
try{
realizarProcessamentoArquivo(arquivo, configuracaoSistema);
}catch (Exception e) {
continue;
}
}
}
[/code]