Em 17-08-2010 11:21, Rafael Henrique Faria escreveu:
> 2010/8/17 Fernando Buzon Macedo <ferna...@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-boun...@fug.com.br [mailto:freebsd-boun...@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 <ferna...@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

Attachment: signature.asc
Description: OpenPGP digital signature

-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

Responder a