<span style="font-family: courier new,monospace;">Outra questão neste assunto é o custo de alocação/desalocação. O Garbage Colector está preparado para fornecer as áreas de memórias quando solicitada pelo SO, mas isto não significa que assim que a memória é liberado pelo programa o GC vai sair liberando. 
</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">A ação de pegar/liberar memória é muito custoso para todo o sistema, liberando somente quando consultado (ou quando a área estiver muito tempo sem uso) evita-se o efeito &quot;sanfona&quot;.
<br><br>É bom lembrar também que atualmente a maioria dos SO fornece um endereçamento 'falso' de memória, ou seja, o endereço de memória fornecido não é exatamente o endereço físico, pode ser que aquele endereço seja uma memória swap, ou que um endereço contínuo fornecido não seja bem assim.
<br><br>Mas o fato mesmo, é que, memória alocada demora a ser desalocada em todos as linguagens que tem GC que eu conheço, já o que ele trabalha em ciclos e tem seus motivos próprios para liberar memória.<br><br>Em algumas linguagens é importante você marcar os recursos como undef (ou qualquer outra coisa com a mesma idéia), mas numa discussão muito antiga na lista com o Graciliano fui convencido de que no Perl não precisa disto basta.
<br><br>Abraços,<br><br>Solli M. Honório<br></span><br><div><span class="gmail_quote">On 5/12/06, <b class="gmail_sendername">Nilson Santos Figueiredo Junior</b> &lt;<a href="mailto:acid06@gmail.com">acid06@gmail.com</a>&gt; wrote:
</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On 5/12/06, Alceu R. de Freitas Jr. &lt;<a href="mailto:glasswalk3r@yahoo.com.br">glasswalk3r@yahoo.com.br
</a>&gt; wrote:<br>&gt; Uma vez que o Perl pegue memória do sistema, ele não<br>&gt; consegue devolver isso para o SO: o melhor que pode<br>&gt; fazer é usar essa memória para ele mesmo.<br><br>Não é *exatamente* assim.<br>
Se você estiver usando threads, cada thread que finalizar irá liberar<br>a memória de volta ao sistema operacional. Além disso, mesmo sem<br>threads, se existir uma posição contígua de memória completamente<br>inutilizada e relativamente grande (entre 1 e 8MB pelo menos, de
<br>acordo com o sistema operacional) ela também será liberada. Contudo,<br>isso raramente ocorre, porque é raro existir uma quantidade tão grande<br>de memória assim alocada contíguamente e completamente sem uso. Um<br>inteiro sequer que estiver em uso lá no meio impede toda a liberação
<br>para o sistema.<br><br>-Nilson Santos F. Jr.<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">
http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div><br>