[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Melhorar algoritmo
From: |
MrBiTs |
Subject: |
Re: [shell-script] Melhorar algoritmo |
Date: |
Mon, 09 Nov 2009 07:57:25 -0200 |
User-agent: |
Thunderbird 2.0.0.23 (X11/20090817) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
> Muito legal.. não conhecia esse parâmetro ! :)
> Mas Julio, o grep é "inteligente" para ler o arquivo1 uma vez e dps ler o
> arquivo2 uma vez?
> Ou para cada linha do arquivo1 ele faz uma leitura no arquivo2? :)
Um strace no comando mostra a você extamente o que ele está fazendo.
Além disso, vale verificar a performance. O grep -f é pelo menos 100% mais
rápido do que o grep + paste que foi enviado e "SÓ" 300%
mais rápido que o seu laço for. Para esses testes, desprezei a gravação do
arquivo de saída e joguei tudo para STDOUT. O seu código
ainda tem um "vício" que eu tenho encontrado em diversas pessoas: para cada
iteração de um determinado laço, o resultado é gravado
num arquivo de saída. A forma
para cada passo faça
processe dados 1 >> arquivo_de_saida
fim-para
Consome pelo menos 10% mais tempo do que a forma:
para cada passo faça
processe dados
fim-para > arquivo_de_saida
Esse consumo é exponencial. Quanto mais redirecionamentos para o
arquiv_de_saida você tiver dentro do laço, maior será o tempo.
Outro ponto que devemos notar é que, no seu laço, você usa a forma cat | grep,
desnecessária visto o grep ser capaz de ler o
arquivo. Você não precisa (na grande maioria dos comandos) ler o arquivo e
canalizá-lo para outro comando. O ganho que você teria só
de conhecer melhor as ferramentas que você tem à mão, nesse caso, beiraria os
50%.
Os números de performance foram baseados no processamento de um arquivo de
1.000.000 de linhas.
- --
Um abraço
.0. MrBiTs - address@hidden
..0 GnuPG -
http://www.rnp.br/keyserver/pks/lookup?op=get&search=0xAC37715A6DD1F186
000 Primeiro, aprender a ficar em pé. Depois, aprender a voar, Daniel-san. Lei
da natureza. Não minha.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkr354EACgkQrDdxWm3R8Ya39wCdGOQNksrFu6D7vRoZ3nHPf5t3
AbsAmQEtHvs0T6dr+dLWY2omOi1dFZ3X
=a34d
-----END PGP SIGNATURE-----
- Melhorar algoritmo, Guilherme Andrade, 2009/11/08
- Re: [shell-script] Melhorar algoritmo, Marcelo Salhab Brogliato, 2009/11/08
- Re: [shell-script] Melhorar algoritmo, Julio C. Neves, 2009/11/08
- Re: [shell-script] Melhorar algoritmo, Marcelo Salhab Brogliato, 2009/11/08
- Re: [shell-script] Melhorar algoritmo,
MrBiTs <=
- Re: [shell-script] Melhorar algoritmo, Guilherme Andrade, 2009/11/09
- Re: [shell-script] Melhorar algoritmo, Guilherme Andrade, 2009/11/09
- Re: [shell-script] Melhorar algoritmo, MrBiTs, 2009/11/09
- Re: [shell-script] Melhorar algoritmo, Guilherme Andrade, 2009/11/09
- Re: [shell-script] Melhorar algoritmo, Julio C. Neves, 2009/11/09
Re: [shell-script] Melhorar algoritmo, Leandro Santiago, 2009/11/09