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

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

Re: [shell-script] Problemas com performance de script shell


From: Rodrigo Boechat
Subject: Re: [shell-script] Problemas com performance de script shell
Date: Mon, 14 Nov 2011 20:14:35 -0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20111001 Thunderbird/7.0.1

Por favor, mande um exemplo com valores fictícios do arquivo de entrada.
Três conjuntos de linhas "2" e "3" seria suficiente.

Rodrigo Boechat

Em 14-11-2011 19:42, mrgraucio escreveu:
>
> Boa noite galera!
>
> Estou com um problema na leitura de arquivos, classificação desses 
> dados e armazenamento em banco de dados. Tenho um arquivo que tem em 
> torno de 4 mb com informações sobre a produção de uma determinada 
> empresa. Nele tenho linhas que iniciam com o número 2 e complementadas 
> com linhas iniciadas pelo número 3. Basicamente transformo as linhas 
> iniciadas por 2 e 3 em uma só. A linha iniciada por 2 tem sempre 80 
> caracteres, a iniciada por 3 varia de acordo com o tipo do produto em 
> questão. Faço a separação por serviços de acordo com o número de 
> caracteres da linha. Ex.:
>
> for a in $(grep -B 1 '^3' $ARQ | sed 's/ //g' | sed '/--/d' | sed -e 
> "N;s/\n$3/3/g"); do /* FAÇO A LINHA COMPLEMENTAR, DE INICIO 3, VOLTAR 
> UMA LINHA ACIMA, AO FINAL DA LINHA DE INÍCIO 2. ESSE CARA DEMORA BEM 
> POUCO */
>
> if [ $(wc -c <<<$a) -eq <num de caracteres> ]; then /* CLASSIFICAÇÃO 
> DE ACORDO COM NUMERO DE CARACTERES */
>
> if [ $(cut -c26-31) -eq 109 ]; then /* ESSES CARACTERES ME DÃO O 
> CÓDIGO DO PRODUTO, CASO ALGUMA LINHA TENHA O MESMO NÚMERO DE 
> CARACTERES MAS NÃO SEJA O MESMO PRODUTO */
> var1=$(cut -c2-10 <<<$a)
> var2=$(cut -c11-15 <<<$a)
> varn=$(cut -cnn-nn <<<$a)
> fi
>
> fi
>
> done
>
> Porém está demorando em torno de 25 minutos para terminar a 
> classificação dos dados.
>
> Há alguma forma de eu conseguir executar vários loops de uma só vez, 
> fazendo algum fork ou algo do gênero? Procurei em vários lugares 
> também a respeito de como fazer multi-processamento dessas tarefas 
> para melhorar a distribuição das tarefas entre threads do CPU 
> (Core2Quad) mas também cheguei no fim da linha e não consegui nada!
>
> O arquivo é executado a partir de uma tmpfs, acreditei ser melhor para 
> ter maior velocidade de leitura.
>
> Alguém tem uma luz de como deixar este processo mais rápido?
>
> Grato e muito obrigado!
>
> 


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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