<div dir="ltr">Olá a todos,<br><br>Preciso executar certos processos com memória compartilhada, então optei por usar threads::shared,<br>o problema é que quando a execução termina a memória não é liberada, procurei na documentação<br>
e não achei nada, desculpem se for algo muito banal, mas sou novato tanto em programação quanto <br>em Perl.<br><br>Não estou postando meu código, estou postando um teste que fiz e tive o mesmo problema,<br>o script de teste começa ocupando 0.1% da memória da minha máquina, depois vai aumentando<br>
até chegar em 1.0%, só que mesmo depois das threads serem executadas o uso de memória<br>continua em 1.0%.<br><br>#!/usr/bin/perl<br>use strict;<br>use warnings;<br><br>use threads;<br>use threads::shared;<br><br>my %value = ();<br>
share(%value);<br><br>for(my $i = 0; $i &lt; 100; $i++) {<br>&nbsp;&nbsp;&nbsp; # Isso é para os processos serem criados aos poucos<br>&nbsp;&nbsp;&nbsp; # e eu poder monitorar pelo utilitário top o aumento<br>&nbsp;&nbsp;&nbsp; # do uso da memória<br><br>&nbsp;&nbsp;&nbsp; my $thr = threads-&gt;create(&#39;teste&#39;, &#39;&#39;);<br>
&nbsp;&nbsp;&nbsp; $thr-&gt;detach();<br>}<br><br># Coloquei isso para o script continuar rodando e <br># eu poder monitorar pelo utilitário top<br># e ver se a memória seria liberada <br>sleep 1000;<br><br>sub teste {<br>&nbsp;&nbsp;&nbsp; $value{EXEMPLO} = &#39;Valor qualquer&#39;;<br>
&nbsp;&nbsp;&nbsp; sleep 20;<br>&nbsp;&nbsp;&nbsp; print threads-&gt;self-&gt;tid(), &quot;\n&quot;;<br>&nbsp;&nbsp;&nbsp; return;<br>}<br><br><br>Grato,<br clear="all"><br>-- <br>Geovanny Junio<br><a href="mailto:geovannyjs@gmail.com">geovannyjs@gmail.com</a> :: 00 55 31 9291-8966<br>
@ILike = qw(Racer Music Movies);<br>&quot;Um homem conta suas histórias tantas vezes que elas se misturam a ele, e ele sobrevive a elas, e é desse jeito que ele se torna imortal.&quot; Big Fish<br>
</div>