Daniel,
eu rodei seu exemplo aqui e vi que a memória não voltou ao normal.
Mas, eu suspeito que o buraco seja mais embaixo. Isso pq tem muita
coisa no meio do caminho que acho que pode estar interferindo na
mensuração da memória.
Por exemplo o jeito não oficial de se forçar o GC usando aquelas
connections. Será que isso realmente dispara o GC? será que não deixa os
tais footprints dessa própria função?
Eu fiz um teste curioso e fiquei mais perdido ainda... Antigamente
ouvi falar que quando vc minimiza a tela do navegador (IE com certeza,
firefox nao lembro) é forçado um GC também no flash e a memória
utilizada pelo processo, se vc olhar no taskbar, vai lá pra baixo.
Então fiz esse teste e o que aconteceu foi o seguinte: quando
inicia a aplicação a memória gasta pelo IE fica +-uns 30mb. Quando clica
no botão de gerar os filhos a memória vai pra uns +-40mb. Quando clica
no botão de deletar os filhos a memória não altera e quando clica no
botão de forçar GC a memória reduz uns 2mb. Agora... se depois disso vc
minimizar a tela do IE, a memória cai e fica em 7mb.
Outra informação relevante é que se eu abrir o IE vazio
(about:blank) a memória vem já com 19mb gasta no processo IEXPLORER.
Agora se eu minimizar essa mesma tela vazia a memoria cai pra 7mb e se
eu dar um restore na tela e minimizar de novo vai pra 3mb ficando por aí
subsequentemente.
A conclusão que eu tirei foi de que:
1) Os métodos de checagem de consumo de memória precisam ser
revistos porque estão discordando entre o do flash player e o do S.O.
2) Já que o método de checagem de memória está duvidoso, não dá pra
saber se o GC foi mesmo disparado e como foi processado (valores
diferentes para metodos diferentes de disparo de GC)
3) Até hoje nunca tive problemas com memory leak, mesmo com meu
cliente usando o sistema durante todo o horário comercial.
de qualquer forma, ficam aí mais essas informações.
abração,
Luís Eduardo
Daniel Schmitz escreveu:
> pois é;
>
> o problema é que o Alex Harui disse:
>
> "Honestly, I don't know of any issues of the first kind at this
> point."
>
> isto é, não existem problemas.... Mas o código por si só mostra que
> existem sim, pelo menos no meu ponto de vista. Se eu adiciono 1000
> botoes na tela, depois tiro eles, a memória tem q voltar para o estado
> inicial, ou pelo menos muito próximo disso... o que nao acontece.
>
> acho que vale a pena entrar na flexcoders e questinar esta questão.
>
> http://tech.groups.yahoo.com/group/flexcoders/message/85185
>
> Abraços,
> Daniel Schmitz
>
>
> On 29 ago, 12:52, Rodrigo Pereira Fraga <[EMAIL PROTECTED]> wrote:
>
>> Eu Vi no flexCoders...
>>
>> Mas agnt vai falar oq?
>>
>> O que agnt pode acreditar, é o Flash 9 beta, possa vir release com
>> isso corrigido
>> (dúvido, pelo menos não nesta versão)
>>
>> ....
>>
>> Abraços...
>> \o/
>>
>> On 29 ago, 10:38, Beck Novaes <[EMAIL PROTECTED]> wrote:
>>
>>
>>> Acho que as pessoas se preocupam sim. Eu por exemplo não posso falar
>>> nada sobre o problema porque ainda não vi o post citado no FlexCoders.
>>>
>>> []'s
>>> Beck Novaes
>>>
>>> On 29 ago, 08:46, Daniel Schmitz <[EMAIL PROTECTED]> wrote:
>>>
>>>> ninguém se preocupa com isso pessoal?
>>>>
>>>> On 27 ago, 11:24, Daniel Schmitz <[EMAIL PROTECTED]> wrote:
>>>>
>>>>> Olá pessoal,
>>>>>
>>>>> acompanhei neste fim de semana um post do André Pena sobre leak de
>>>>> memória na flexcoders. Bolei um exemplo aqui bem simples da "prova" do
>>>>> leak... Gostaria que verificassem se estou fazendo algo "errado",
>>>>> porque para mim está tudo correto, mas mesmo assim ocorre o leak...
>>>>>
>>>>> O vídeo do problema está aqui:http://www.screencast.com/t/RN05DdtMdc0
>>>>>
>>>>> Quem quiser ver, pode criar um mxml em um projeto com o seguinte
>>>>> código:
>>>>>
>>>>> <?xml version="1.0" encoding="utf-8"?>
>>>>> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
>>>>> layout="vertical">
>>>>>
>>>>> <mx:VBox id="vBoxLeak" width="200" height="200"
>>>>> backgroundColor="#eeeeee"/>
>>>>>
>>>>> <mx:HBox>
>>>>> <mx:Button id="btnAddChilds" label="Add Childs"
>>>>> click="onAddChilds_Click(event)"/>
>>>>> <mx:Button id="btnRemChilds" label="Rem Childs"
>>>>> click="onRemChilds_Click(event)"/>
>>>>> </mx:HBox>
>>>>>
>>>>> <mx:HBox>
>>>>> <mx:Button id="forceGC" label="Force GC"
>>>>> click="onForceGB_Click(event)"/>
>>>>> </mx:HBox>
>>>>>
>>>>> <mx:HBox>
>>>>> <mx:Button id="btnCaptureMemory" label="Capture Memory"
>>>>> click="onCaptureMemory_Click(event)"/>
>>>>> </mx:HBox>
>>>>>
>>>>> <mx:TextArea id="txtArea" width="200" height="200"
>>>>> textAlign="right"/
>>>>>
>>>>> <mx:Script>
>>>>> <![CDATA[
>>>>> import mx.controls.Button;
>>>>>
>>>>> private function
>>>>> onAddChilds_Click(event:MouseEvent):void
>>>>> {
>>>>> for (var i:int=0;i<1000;i++)
>>>>> {
>>>>> vBoxLeak.addChild(new Button);
>>>>> }
>>>>> }
>>>>>
>>>>> private function
>>>>> onRemChilds_Click(event:MouseEvent):void
>>>>> {
>>>>> vBoxLeak.removeAllChildren();
>>>>> }
>>>>>
>>>>> private function
>>>>> onCaptureMemory_Click(event:MouseEvent):void
>>>>> {
>>>>> txtArea.text += System.totalMemory + "\n";
>>>>> }
>>>>>
>>>>> private function
>>>>> onForceGB_Click(event:MouseEvent):void
>>>>> {
>>>>> // unsupported hack that seems to force a
>>>>> full GC
>>>>> try
>>>>> {
>>>>> var lc1:LocalConnection = new
>>>>> LocalConnection();
>>>>> var lc2:LocalConnection = new
>>>>> LocalConnection();
>>>>>
>>>>> lc1.connect('name');
>>>>> lc2.connect('name');
>>>>> }
>>>>> catch (e:Error)
>>>>> {
>>>>>
>>>>> }
>>>>> }
>>>>>
>>>>> ]]>
>>>>> </mx:Script>
>>>>>
>>>>> </mx:Application>
>>>>>
>>>>> Além tem uma solução para isso ????
>>>>>
>>>>> Abraços :)- Ocultar texto entre aspas -
>>>>>
>>> - Mostrar texto entre aspas -
>>>
>
>
> >
>
>
>
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---