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