[Cascavel-pm] Liberar Memoria

Solli Honorio shonorio em gmail.com
Sábado Maio 13 06:22:54 PDT 2006


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.

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 "sanfona".

É 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.

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.

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.

Abraços,

Solli M. Honório

On 5/12/06, Nilson Santos Figueiredo Junior <acid06 em gmail.com> wrote:
>
> On 5/12/06, Alceu R. de Freitas Jr. <glasswalk3r em yahoo.com.br> wrote:
> > Uma vez que o Perl pegue memória do sistema, ele não
> > consegue devolver isso para o SO: o melhor que pode
> > fazer é usar essa memória para ele mesmo.
>
> Não é *exatamente* assim.
> Se você estiver usando threads, cada thread que finalizar irá liberar
> a memória de volta ao sistema operacional. Além disso, mesmo sem
> threads, se existir uma posição contígua de memória completamente
> inutilizada e relativamente grande (entre 1 e 8MB pelo menos, de
> acordo com o sistema operacional) ela também será liberada. Contudo,
> isso raramente ocorre, porque é raro existir uma quantidade tão grande
> de memória assim alocada contíguamente e completamente sem uso. Um
> inteiro sequer que estiver em uso lá no meio impede toda a liberação
> para o sistema.
>
> -Nilson Santos F. Jr.
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20060513/1239430c/attachment.html 


Mais detalhes sobre a lista de discussão Cascavel-pm