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 &#39;threads&#39; e você pode construir seu system dentro dele, e ele seria o seu &quot;script chefe&quot; 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">&lt;<a href="mailto:capmostarda@gmail.com">capmostarda@gmail.com</a>&gt;</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 &quot;pequeno&quot; sistema que precisa executar vários scripts Perl em paralelo.<br>
Então existe um script Perl &quot;chefe&quot; 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 &lt; $execucoes ) # são execuções limitadas, mas por enquanto são 60<br>{<br>    system( &#39;./<a href="http://script.pl" target="_blank">script.pl</a> $parametro1 &gt; /dev/null &amp; &#39; );<br>


}<br><br>Dentro do script é carregado um módulo usando require assim:<br><br>require $ARGV[ 0 ].&quot;.pm&quot;;<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 &quot;Lorn&quot; Rodrigues<br>
<br>
</div>