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.<div>
E ele tem um cookbook <a href="http://poe.perl.org/?POE_Cookbook">http://poe.perl.org/?POE_Cookbook</a> 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 <a href="http://poe.perl.org/?POE_Cookbook/Child_Component">http://poe.perl.org/?POE_Cookbook/Child_Component</a>.</div>
<div>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.</div><div><br><div class="gmail_quote">
2011/1/20 Tom Mostard <span dir="ltr"><<a href="mailto:capmostarda@gmail.com">capmostarda@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Olá, pessoal!<br><br>Estou tendo um problema de memória com scripts em Perl.<br>Alguém aí teve algum problema parecido?<br><br>Tenho um "pequeno" sistema que precisa executar vários scripts Perl em paralelo.<br>
Então existe um script Perl "chefe" que fica responsável por executar eles com parâmetros diferentes usando system().<br>
<br>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.<br>Uso o MySQL em outra máquina para não abusar da memória.<br>
<br>Script-chefe:<br><br>while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto são 60<br>{<br> system( './<a href="http://script.pl" target="_blank">script.pl</a> $parametro1 > /dev/null & ' );<br>
}<br><br>Dentro do script é carregado um módulo usando require assim:<br><br>require $ARGV[ 0 ].".pm";<br><br>Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 MB de memória.<br>Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo sistema.<br>
Me parece que cada script carregado usa 8 MB em média. (Isso é possível/normal?)<br>Quando uso 60, nem todos os scripts são executados.<br>Existe alguma maneira de executar um script otimizando o uso de memória ou<br>vou ter que reavaliar o código?<br>
Já revisei o código e eliminei arrays, variáveis de conexões com bancos desnecessárias.<br>Existe algo mais que eu possa fazer?<br><br>Abraços,<br><font color="#888888"><br>Tom<br>
</font><br>_______________________________________________<br>
Cascavel-pm mailing list<br>
<a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>lorn at lornlab dot org<br>Lindolfo "Lorn" Rodrigues<br>
<br>
</div>