Fórum Desempnho lento em looping #320210

28/04/2006

0

Olá amigos, tudo bem con vcs?...espero sim
eu estou com uma dúvida q é a seguinte....eu tenho um programa que envia arquvos txt para um ftp...e durante a criação desse arq txt...ou seja antes de efetuar qualquer trabalho via internet...percebi q o desempenho do programa caia muito...não só do programa como do micro em si...fiz as mudanças possíveis no código para q ele pudesse ter um desempeho melhor...mas nao adiantou muito...depois d ´fuçar´ muito fiz um programa teste bem básico com o seguinte código

procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
 form1.Caption:=´´; i:=0;
 while i < 50000 do begin
    application.ProcessMessages;
    form1.Caption:=inttostr(i);
    Inc(i)
 end;
end;


executei o programa e abri o gerenciador de tarefas...e na aba desempenho no indicador de uso de cpu verifiquei q estava 100¬....sendo q o procedimento acima é extremamente simples...alguém sabe pq isso acontece e se existe alguma forma pra q possa melhorar esse desempenho de cpu?....uso delphi 2005 e meu micro é um pentium 4
3.0 GHz com 512 de memória
desde já gradeço atenção


Lucianoiron

Lucianoiron

Responder

Posts

29/04/2006

Aerreira

Seu processo leva aqui na minha máquina quase 1 minuto com 100¬ de CPU.

Se trocar o form1.caption por um label1.caption o tempo cai para 15 segundos também com 100¬ de CPU.

Se retirar o application.ProcessMessages cai para 2 segundos e não chega a afetar quase nada o uso da CPU, mas não mostra o andamento do processo.

Se trocar o label1.caption por um progressbar.position vai conseguir os mesmos 2 segundos, conseguindo ver o andamento do processo.

Conclusão: mude a forma como mostra seu processamento para um progressbar e terá um resultado muito melhor.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar