Tempo de geração dos arquivos fiscais (SPED FISCAL e CONTRIBUIÇÕES)

Boa noite jovens… Andei dando uma pesquisa pelas internets mas acabei não encontrando nada muito esclarecedor.

Trabalho com um sistema para supermercados que deve gerar as escriturações fiscais todo mês, tanto o SPED Fiscal como o Contribuições. Porém o tempo médio de geração desses arquivos dependendo da quantidade de nota fiscal emitida, gira em torno de 30 min a 1 hora.
Usamos como linguagem Java e BD Postgres. O servidor de aplicação é JBoss 7 configurado geralmente em um servidor linux.

Gostaria de alguma sugestão para otimizar a geração desses arquivos.
Cada bloco eh feito uma consulta em banco que retorna um ArrayList. Essa lista vai para um for para tratar e fazer as validações de cada campo que deve ser preenchido. Usamos Stringbuilder para juntar as informações e depois salvar em um arquivo de texto.
Geralmente é gerado em torno de 50 a 100 mil linhas no arquivo texto (Isso em clientes com faturamento pequeno).

Nao sei se essas informações foram uteis. Mas estou aberto a qualquer sugestão e perguntas.

Obg por tudo…
Abraços.

Você precisa saber exatamente qual parte está demorando mais, para otimizar os locais certos. Pode fazer isso usando profilers, como a VisualVM.

Tentou fazer essa geração direto no banco de dados, ou seja, usando pgsql? Isso tira toda a carga do Java, que não costuma ser pequena (ainda mais se você está usando JBoss ).

Abraço.

Opa… obrigado pelas dicas…

O bloco que mais demora para a geração do arquivo é referente as notas do sistema, tanto de entrada como saída.
Não tinha usado esse VisualVM, mas vou verificar para ver oq ele apresenta no sistema.

Quanto a gerar direto no banco, nao fiz isso ainda. Creio que para funcionar usando pgsql, eu teria que ja armazenar os dados em banco ja tratados para o SPED. Creio eu.

Vou fazer uns testes e posto o resultado aqui.