1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Lentidão do programa

Discussão em 'Programação' iniciada por pedroeeic, 29 de Setembro de 2008. (Respostas: 6; Visualizações: 692)

  1. pedroeeic

    pedroeeic Power Member

    Boas pessoal

    Fiz um programa para uma maquina que montei para um trabalho da universidade e agora que essa maquina esta em testes, foi verificado que ao fim de algumas peças manobradas, o programa fica lento.
    A programa executa comandos em DOS e esta em constante ligação a uma rede onde troca informação,para alem de monitozizar cada passo que a maquina faz.
    O que eu gostava de saber é se essa lentidao sera dos comandos DOS, da ligação a uma rede ou se é por estar constantemente a entrar numa rotina onde eu declaro(crio) algumas variaveis. Sera que preciso de declarar essas variaveis fora da rotina de forma a evitar a constante criação da mesma variavel??
    Ou seja: A criação sucessiva de variaveis enche a memoria??
    Abraço
     
  2. izanagi

    izanagi Power Member

    Sim enche a memória.
    Por isso é aplicações em linguagens com Garbage Collector são por norma mais lentas. A memória só limpa quando se precisar de mais.
    Enquanto em aplicações feitas com linguagens sem Garbage Collector, em que os recursos têm de ser libertados manualmente. São mais rápidas quando escritas correctamente.

    O que me parece é que estás a escrever código numa linguagem sem Garabage Colector como se tivesses um.

    Que linguagem estás a usar?

    Cheers
     
  3. pedroeeic

    pedroeeic Power Member

    Esqueci-me de mencionar a linguagem....é C#.
     
  4. izanagi

    izanagi Power Member

    Se estás a usar C# a hipótese que me ocorre é que tenhas falta de memória ou pouco espaço em disco. O C# carrega muitas libs e utils do .Net para correr e isso faz com que se degrade a performance.
     
  5. The_True_Eue

    The_True_Eue Power Member

    Se o problema for o garbage collector a "intrometer-se" quando não deve, usa as propriedades da classe GC e muda para o modo menos agressivo.
    Se for o contrário e tiveres pouca memória, muda para o mais agressivo, ou força a colecta regularmente com GC.Collect();
     
  6. spastikman

    spastikman Banido

    sempre que não precisares de um objecto, faz objecto.dispose() ;)
     
  7. pedroeeic

    pedroeeic Power Member

    Obrigado a todos os que responderam. Vou ter em conta as vossas opinioes e depois digo qual era o problema.

    Abraço:D
     

Partilhar esta Página