Re: [FUG-BR] RES: Script perl consome muito CPU
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/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
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