[Cascavel-pm] Threads não liberam memória
Geovanny Junio
geovannyjs em gmail.com
Quarta Outubro 8 12:57:50 PDT 2008
Olá a todos,
Preciso executar certos processos com memória compartilhada, então optei por
usar threads::shared,
o problema é que quando a execução termina a memória não é liberada,
procurei na documentação
e não achei nada, desculpem se for algo muito banal, mas sou novato tanto em
programação quanto
em Perl.
Não estou postando meu código, estou postando um teste que fiz e tive o
mesmo problema,
o script de teste começa ocupando 0.1% da memória da minha máquina, depois
vai aumentando
até chegar em 1.0%, só que mesmo depois das threads serem executadas o uso
de memória
continua em 1.0%.
#!/usr/bin/perl
use strict;
use warnings;
use threads;
use threads::shared;
my %value = ();
share(%value);
for(my $i = 0; $i < 100; $i++) {
# Isso é para os processos serem criados aos poucos
# e eu poder monitorar pelo utilitário top o aumento
# do uso da memória
my $thr = threads->create('teste', '');
$thr->detach();
}
# Coloquei isso para o script continuar rodando e
# eu poder monitorar pelo utilitário top
# e ver se a memória seria liberada
sleep 1000;
sub teste {
$value{EXEMPLO} = 'Valor qualquer';
sleep 20;
print threads->self->tid(), "\n";
return;
}
Grato,
--
Geovanny Junio
geovannyjs em gmail.com :: 00 55 31 9291-8966
@ILike = qw(Racer Music Movies);
"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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20081008/75d71354/attachment.html>
Mais detalhes sobre a lista de discussão Cascavel-pm