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

João André Simioni jasimioni em gmail.com
Quinta Janeiro 20 04:46:05 PST 2011


Blabos,

Ele está chamando o script.pl com & comercial no final - assim a Shell
imediatamente coloca o processo em background e o system retorna
imediatamente. Ele consegue os múltiplos processos paralelos.

Mas para o sistema operacional, é como se tivesse executado cada um
deles separadamente e por isso a quantidade de memória excessiva (não
compartilham nenhuma matriz de dados, nem nada assim).

[]'s

Joao Andre



2011/1/20 Blabos de Blebe <blabos em gmail.com>:
> Puta merda!
>
> Não é que se a gente não tomar cuidado bizonhice pega!
>
> Aff...
>
> 2011/1/20 Alexei Znamensky <russoz em gmail.com>:
>> 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»
>>
>> _______________________________________________
>> 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
>


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