[FUG-BR] RES: Script perl consome muito CPU

Zhu Sha Zang zhushazang em yahoo.com.br
Terça Agosto 17 11:28:25 BRT 2010


 Em 17-08-2010 11:21, Rafael Henrique Faria escreveu:
> 2010/8/17 Fernando Buzon Macedo <fernando em bebedouro.sp.gov.br>
>
>> Obrigado.
>> Eu acho que entendi sua idéia, vou ver em Perl e vou fazer, mas seria tipo:
>>
>> next LOG unless defined $message;
>> if (!$message)
>>  sleep 1
>> else
>> {
>> //Resto do código
>> }
>>
>>
> Você colocou o sleep depois do retorno do loop. O comando que faz o look é o
> "next LOG".
>
> Eu tentaria algo do tipo:
>
> LOG: sleep 1; while (1) {
>                my $message = <FIFO>;
>                next LOG unless defined $message;
>
>  Seria isso né?
>> Valeu, se conseguir algo posto aqui.
>>
>> -----Mensagem original-----
>> De: freebsd-bounces em fug.com.br [mailto:freebsd-bounces em fug.com.br] Em nome
>> de Rafael Henrique Faria
>> Enviada em: terça-feira, 17 de agosto de 2010 10:27
>> Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
>> Assunto: Re: [FUG-BR] Script perl consome muito CPU
>>
>> 2010/8/17 Fernando Buzon Macedo <fernando em bebedouro.sp.gov.br>
>>
>>> LOG: while (1) {
>>>
>>>
>> Bom dia Fernando.
>> O problema, é esse while (1)
>>
>> O código do script é realmente compacto, ele não realiza processamento.
>> Então, ele não deveria, e não poderia consumir CPU.
>> Porém, como ele está em um loop infinito, ele acaba consumindo CPU.
>>
>> O que você pode fazer, é melhorar esse script, com outras formas de obter
>> os
>> dados. Eu não conheço PERL, por isso não posso ajudar muito, mas posso dar
>> uma sugestão:
>>
>>               next LOG unless defined $message;
>>
>> Nessa parte do código, em vez de já pular para o loop novamente quando não
>> existir nenhum dado a ser processado, poderia ser dada uma pausa... de 1
>> segundo por exemplo. Iria diminuir drasticamente o processamento.
>>
>>
>> --
>> Rafael Henrique da Silva Faria
>> -------------------------
>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>
>> -------------------------
>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>
>
>
Sugiro pesquisar por técnicas de pooling em perl. Esse "while (1)" é
absurdo.

Att

-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : signature.asc
Tipo  : application/pgp-signature
Tam   : 262 bytes
Descr.: OpenPGP digital signature
Url   : http://www.fug.com.br/historico/html/freebsd/attachments/20100817/432c9add/attachment.bin 


Mais detalhes sobre a lista de discussão freebsd