QUESTAO DE VELOCIDADE?

TAMANINI 27/05/2005 11:24:41
#85464
Há alguma melhorá na velocidade se eu fiz dois laços em vez de um?
Tipo:
Do while valor > i
for contador = 0 to 18
print #setfreefile, variavel(num)
num = num +1
next contador
i = i+1
loop

em vez de:
Do while valor > i
print #setfreefile, variavel(num)
num = num+1
print #setfreefile, variavel(num)
....
i = i+1
loop
CLEVERTON 27/05/2005 15:29:04
#85512
eu acho o For/Next bem mais rápido/exato
IVOFABIANO 27/05/2005 16:07:52
#85531
Resposta escolhida
O laço de repetição " FOR" é mais rápido. Porém ter um Laço dentro de outro tende sempre a degradar a performance.
No se uexemplo, creio que seja cabível usar um laço de repetição contado (FOR) ao invéz de escrever 18 vezes um mesmo comando...

Abs
TAMANINI 27/05/2005 17:31:46
#85557
Certo então eu faria um for apenas, mas contuaria com 18 prints dentro do for, em compensação ganharia em velocidade?
Ficando:
FOR i = 0 to valor-1
print
num= num+1
print
num = num+1
print
'repetindo 18 vezes
next i
USUARIO.EXCLUIDOS 27/05/2005 17:41:13
#85561
acho que o que você quer é isto:

for i = 0 to 18
print #setfreefile, i
next i
TAMANINI 27/05/2005 17:49:30
#85563
Infelizmente não, eu tenho tantos registros em uma tabela e cada registro dessa tabela possui 18 registros em outra tabela.
Por isso, gostaria de saber se ficaria melhor um laço ou dois laços, o que ficou claro é que o FOR é mais rápido, agora seria mais rápido utilizar mais um FOR do que escrever 18 vezes: print e num?
IVOFABIANO 30/05/2005 09:23:52
#85863
Escrevendo 18 vezes ou usando um for, nesse caso, vc não vai notar diferença pois ela será muito pequena. Didaticamente, vc deve usar um FOR (Laço de repetição contado) no lugar de escrever 18 X um comando. Os laços de repetição existem para isso.

Uma dica, a qual eu pratico tb, é sempre que vc tiver dúvidas qto a performance, faça pequenos protótipos de teste e avalie o que fica melhor.

Abs.
TAMANINI 30/05/2005 11:19:03
#85880
ok, obrigado.
Tópico encerrado , respostas não são mais permitidas