<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 < 100; $i++) {<br> # Isso é para os processos serem criados aos poucos<br> # e eu poder monitorar pelo utilitário top o aumento<br> # do uso da memória<br><br> my $thr = threads->create('teste', '');<br>
$thr->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> $value{EXEMPLO} = 'Valor qualquer';<br>
sleep 20;<br> print threads->self->tid(), "\n";<br> 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>"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." Big Fish<br>
</div>