Só para dar mais umas ideias para a discussão.
Da ideia que tenho podem existir referências para objectos desde que não
sejam acessíveis através da raiz da display list.

Por exemplo um sprite contem outro e o "pai" tem registado um listener no
"filho". Ao removermos o pai da display list e não existir nenhuma
referência para qualquer um deles acessíveis da raíz quando a rotina de GC
actuar ambos os objectos são marcados como livres para descartar embora o
filho contenha uma referência do pai (listener) e o pai contenha uma
referência do filho (display list).

Outra assunto associado a este são as weak references (podem ser forçadas
quando se adiciona um listener ou num objecto Dictionary) que o GC não conta
como referências para a contagem no algoritmo de limpeza, penso eu de que.

2009/5/18 Cain Vampyr <[email protected]>

>  Como disse independentemente de existir ou não, tal como tu também o
> disseste, o importante e perceber como se "limpa" algo da memoria, ou melhor
> 'faladrando' perceber que enquanto existir 1 só apontador que seja o valor
> ira sempre existir na memoria. Referencias são apontadores, igualar
> referencias a 'null' NÃO limpa o objecto, enquanto existirem outras
> referencias ao mesmo....
>
> João Fernandes wrote:
>
> Do meu ponto de vista o GC do Flash Player não é duvidoso ou defeituoso.
> Acho que acima de tudo as pessoas tem uma ideia errada de o que este é
> suposto fazer.
>
> A regra é simples, se todas as "hard-references" a um objecto forem 0,
> no próximo passo do GC, este será removido de memória. Este não tem de
> ocurrer de forma ciclica e constante mas em função da necessidade da
> aplicação ou do sistema que o está a correr.
>
> Se as boas práticas forem implementadas, o problema de GC nem sequer se
> põe pois sempre que o sistema precisar reciclar os conteúdos em memória,
> poderá faze-lo reciclando tudo o que é desnecessário.
>
> Para mim libertar os objectos quando não necessários, não é opcional mas
> obrigatório em excepção possível. Se tiverem problemas de performance
> numa aplicação, bastará utilizar o profiler para encontrar o potencial
> problema.
>
>
>  O suposto GC do flash player tem exactamente este comportamento o que
> me leva a concluir que não existe qqer GC propriamente dito.
>
>
>  Fernando, na realidade existe sim um GC e o acesso a este a nível de
> código só funciona com versões de debug do player via
> flash.system.System.gc(), a versão normal do player irá ignorar o comando.
> Este comando é o mesmo que é usado no Flex Builder quando se está a
> fazer profiling à aplicação.
>
>
>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Mailing List da Comunidade 
Portuguesa de Rich Internet Applications - www.riapt.org" do Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
[email protected]
 Para anular a inscrição neste grupo, envie um email para 
[email protected]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/riapt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---

Responder a