[Cascavel-pm] Perl X RAM (memória)

Alexei Znamensky russoz em gmail.com
Quinta Janeiro 20 04:24:02 PST 2011


Blabos

2011/1/20 Blabos de Blebe <blabos em gmail.com>

> Não foi o que você perguntou, mas considere:
>
> foo.pl:
> #!/usr/bin/perl
>
> print $ARGV[0], $/;
> `sleep 5`;
>

aspas invertidas?? WTF?
perldoc -f sleep


> ___
>
> perl -E 'while($i++ < 10){system("./foo.pl", $i)}'
>
> perldoc -f system:
> Does exactly the same thing as exec LIST , except that a fork is done
> first, and the parent process waits for the child process to exit.
>
>
> Então não tem chamada parelela nenhuma acontecendo.
>
> Abraços
>
> 2011/1/20 Lindolfo Lorn Rodrigues <lorn.br em gmail.com>:
> > Cara, usar system não é uma boa pratica para cada chamada no system ele
> vai
> > carregar um bash para tratar o STDOUT que você manda para o /dev/null, eu
> > recomendo você dar uma olhada no POE, ele é um sistema de 'threads' e
> você
> > pode construir seu system dentro dele, e ele seria o seu "script chefe"
> > porque ele foi feito para isso.
> > E ele tem um cookbook http://poe.perl.org/?POE_Cookbook quando eu usei
> ele,
> > eu peguei um cookbook ( receita de bolo ) que mais se parecia com o meu
> > problema e mudei um pouco com o meu programa e etc. No seu caso parece
> que
> > você que gerenciar
> > processos http://poe.perl.org/?POE_Cookbook/Child_Component.
> > Minha principal dica é, não use system faça seus programas Perl
> conversarem
> > com eles mesmo usando IPC, TCP sei lá, o POE resolve tudo isso para você
> > caso tenha alguma duvida pergunte ai, flw.
> > 2011/1/20 Tom Mostard <capmostarda em gmail.com>
> >>
> >> Olá, pessoal!
> >>
> >> Estou tendo um problema de memória com scripts em Perl.
> >> Alguém aí teve algum problema parecido?
> >>
> >> Tenho um "pequeno" sistema que precisa executar vários scripts Perl em
> >> paralelo.
> >> Então existe um script Perl "chefe" que fica responsável por executar
> eles
> >> com parâmetros diferentes usando system().
> >>
> >> O sistema acessa vários bancos de dados e a depender do banco, da tabela
> e
> >> do campo ele executa um módulo específico.
> >> Uso o MySQL em outra máquina para não abusar da memória.
> >>
> >> Script-chefe:
> >>
> >> while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto
> >> são 60
> >> {
> >>     system( './script.pl $parametro1 > /dev/null & ' );
> >> }
> >>
> >> Dentro do script é carregado um módulo usando require assim:
> >>
> >> require $ARGV[ 0 ].".pm";
> >>
> >> Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158
> MB
> >> de memória.
> >> Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo
> >> sistema.
> >> Me parece que cada script carregado usa 8 MB em média. (Isso é
> >> possível/normal?)
> >> Quando uso 60, nem todos os scripts são executados.
> >> Existe alguma maneira de executar um script otimizando o uso de memória
> ou
> >> vou ter que reavaliar o código?
> >> Já revisei o código e eliminei arrays, variáveis de conexões com bancos
> >> desnecessárias.
> >> Existe algo mais que eu possa fazer?
> >>
> >> Abraços,
> >>
> >> Tom
> >>
> >> _______________________________________________
> >> Cascavel-pm mailing list
> >> Cascavel-pm em pm.org
> >> http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
> >
> >
> > --
> > lorn at lornlab dot org
> > Lindolfo "Lorn" Rodrigues
> >
> >
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] [
www.flickr.com/photos/alexeiz]
«Only love / Can bring the rain / That makes you yearn to the sky»
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20110120/e5e510ce/attachment.html>


Mais detalhes sobre a lista de discussão Cascavel-pm