shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re: [shell-script] Qual o FOR mais rápido


From: mop
Subject: Re: Re: [shell-script] Qual o FOR mais rápido
Date: Sat, 14 Apr 2007 10:54:43 -0300

O melhor é você ver as operações realizadas fazendo um
set -x 
antes do loop.
Isso não mostrará o tempo para execução de cada uma mas dará um visão
do que ocorre.
Também considero interessante para a comparação temporal reduzir as 
operações no loop, por exemplo:

for i in $(seq 9)
do
: 
done

Indo apenas até 9 é suficiente para apreciação do set -x.
Para a medição do efeito penso que um loop que ultrapasse o minuto seria
mais conveniente para estabelecer proporções reduzindo influênica de tempos de 
carga de programas envolvidos, claro que sem o -x então. Normalmente os
programas externos são mais eficientes no que fazem, pois geralmente são
especializados. A vantagem dependerá da quantidade de trabalho que 
realizará, do tempo para ser posto em funcionamento e dos recursos que
absorverá em relação ao disponível.



------------------------------------------------------------------
>From: "Christian Lyra" <address@hidden>
>Date: Sat, 14 Apr 2007 08:25:20 -0300
>
>Acredito que a razão seja outra. O seq é executado de uma vez e gera toda a
>seguencia de numeros, assim  o "for" só precisa percorrer ela. No segundo
>caso, para cada iteração é necessário executar uma operação matemática e uma
>comparação.
>
>On 4/14/07, Thiago Argolo <address@hidden> wrote:
>>
>>   No primeiro, assim como no segundo script, há um incremento, no primeiro
>> caso declarado explicitamente enquanto no segundo atraves do seq. Porem,
>> no
>> primeiro para cada repetição do laço ele faz uma comparação (se i <=
>> 99999)
>> o que diminui a eficiencia do codigo.
>> Acho que é isso, corrijam-me se estiver errado!
>>
>> Em 13/04/07, Amador Pahim <address@hidden<amador.pahim%40yahoo..com.br>>
>> escreveu:
>>
>> >
>> > Estava eu aqui fazendo meus .sh, e me deparei com uma dúvida: Qual é a
>> > forma mais rápida de execução do comando FOR. Cheguei a tais resultados:
>> >
>> > Script teste01.sh:
>> > ####################
>> > for ((i=1; i<=99999; i++))
>> > do
>> > if [ $i == 99999 ]
>> > then
>> > echo Executando ultimo laço
>> > fi
>> > done
>> > ####################
>> >
>> > root@GerRedes:~# time ./teste01.sh
>> > Executando ultimo laço
>> >
>> > real 0m4.037s
>> > user 0m3.604s
>> > sys 0m0.172s
>> >
>> > Script teste02.sh:
>> > ####################
>> > for i in $(seq 99999)
>> > do
>> > if [ $i == 99999 ]
>> > then
>> > echo Executando ultimo laço
>> > fi
>> > done
>> > ####################
>> >
>> > root@GerRedes:~# time ./teste02.sh
>> > Executando ultimo laço
>> >
>> > real 0m2.701s
>> > user 0m2.432s
>> > sys 0m0.176s
>> >
>> > Esses resultados me deixaram um pouco confuso, pois imaginei que meu
>> > script 01, por utilizar um incremento nativo do FOR fosse ser mais
>> > rápido do que o script 02, que usa uma chamada a um comando externo.
>> > Alguem poderia me ajudar a interpretar melhor esses resultados?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]