none
Performance de Aplicção. RRS feed

  • Pergunta

  • Boa tarde pessoal,

     

    Pessoal tenho um problema e preciso de uma solução. Trabalho com um aplicação que efetua processamento de arquivos texto (txt). Estes arquivos contém muitas linhas, chegando a muitos gigabites, o processamento de um unico arquivo por vezes demora horas para se concluir, ja chegamos a esperar 7 horas de processamento de um arquivo.

    Preciso melhorar a performance da aplicação, mas nao sei como, alguem poderia dar sugestoes ?

    O arquivo tem um layout sem separador, ou seja, para definir onde esta cada informação preciso da posição da informançao no arquivo e efetuo um substring, ai pego esta informação trato ela e dou continuidade no sistema.

    A aplicação esta ddesenvolvida em .Net 4.0 C#.

     

    quinta-feira, 8 de dezembro de 2011 18:25

Respostas

Todas as Respostas

  • Olá X,

    Esse é um problemão.

    Talvez se vc tivesse quebra de linha entre os registros seria mais fácil... pois faria a leitura linha por linha e não teria de trabalhar com um conjunto tão grande...

    Vc consegue postar o código? Vc apenas trabalha com substrings?

    Talvez consiga colocar algum paralelismo, mas antes seria importante avaliarmos o código...

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    quinta-feira, 8 de dezembro de 2011 19:38
    Moderador
  • Eu quebraria o arquivo em N pedaços com substring e passaria cada pedaço para uma thread diferente tratar. Se você conseguir criar 7 pedaços para 7 threads paralelas, seu processamento cairá (em teoria) de 7 horas para 1 hora.

    Tutorial do ThreadPool: http://www.switchonthecode.com/tutorials/csharp-tutorial-using-the-threadpool

    Abs.


    HJ
    • Marcado como Resposta x.programmer sexta-feira, 9 de dezembro de 2011 11:57
    quinta-feira, 8 de dezembro de 2011 23:14
  • Fala HamiltonJ ,

     

    Obrigado pelas respostas, o fonte é dificil de postar por que esta relativamente grande mas nao tem nada de especial,m

    somente a leitura do arquivo. Essa questao da thread ja vinha analisando e vou estuda-la com afinco, ademais, nao há muito a fazer em relação a código,

    talvez analisaremos o servidor, multi-processamento etc....

     

    Obrigado pela ajuda.

    sexta-feira, 9 de dezembro de 2011 11:57