Como consultar a capacidade do JVM?

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]