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

2010-08-17 Por tôpico Zhu Sha Zang
 Em 17-08-2010 11:21, Rafael Henrique Faria escreveu:
> 2010/8/17 Fernando Buzon Macedo 
>
>> 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 = ;
>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 
>>
>>> 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



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


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

2010-08-17 Por tôpico Rafael Henrique Faria
2010/8/17 Fernando Buzon Macedo 

> 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 = ;
   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 
>
> >
> > 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
>



-- 
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


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

2010-08-17 Por tôpico Fernando Buzon Macedo
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
}

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 

>
> 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