On 8/29/07, Beck Novaes <[EMAIL PROTECTED]> wrote:
>
> O primeiro caso é menos grave que o segundo, uma vez que a Adobe pode
> argumentar que se trata de um Tradeoff do projeto da Flash Virtual
> Machine. Em virtude da maior flexibilidade que temos para trabalhar
> com o DisplayList no Flash Player 9 nós agora também somos
> responsáveis pelo gerenciamento de memória (A great Power comes with a
> great responsibility?).

É bem por aí: com poderes vem a responsabilidade. Mas no meu ver, não
é que o Flash Player foi mal implementado. Gerenciar os recursos e
memória é algo que quem tem background de Flash e linguagens web não
está acostumado, porém quem desenvolve em C, Java e afins já está.

>
> O segundo caso é mais grave, pois se é responsabilidade do programador
> gerenciar a memória, caso a sua hipótese esteja correta, isto é
> ignorado pelos programadores da própria Adobe no que diz respeito ao
> SDK do Flex (Em casa de ferreira o espeto é de pau? Faça o que eu
> digo, mas não faça o que eu faço?).

Eu lembro de ter visto uma mensagem na flexcoders de um cara da
própria Adobe comentado isso, do SDK ser interligado. Ele fez uma
mea-culpa sobre o assunto mas tem ciência de que precisariam limpar
mais as coisas.

Contudo, como já notamos, embora saibamos do problema, ele não é
manifestado com uma freqüência considerável, e nas situações em que
ocorre pode ser resolvido através de outras abordagens na arquitetura
(como o StackedModules). Ou seja: a responsabilidade de gerenciarmos a
memória é questionável, ou pelo menos é sob demanda.

Assim, acho que ainda dá para focarmos em design de UI. :-)

>
> Fora isso, eu particularmente acho este problema algo totalmente
> indesejável. Trabalhar com memória é coisa para programadores de baixo
> nível e o que eu quero com o Flex é focar no Design de Interfaces.
>
> []'s
> Beck Novaes
>
>
> On 29 ago, 14:12, "Fabio Terracini" <[EMAIL PROTECTED]> wrote:
> > Bem, esse "problema" já era sabido, e isso ocorre, no meu ver, por dois 
> > motivos:
> >
> > - Arquitetura do display list
> > - SDK do Flex é interligado demais.
> >
> > Os componentes fazem muitas referências uns aos outros. Remover um
> > componente da tela não quer dizer que todas suas referências a outros
> > componentes foram limpas.
> >
> > Assim, ao remover todos os containers com o removeAllChildren, você
> > está simplesmente removendo-os da tela, e não da memória. O código que
> > está por trás dele inclusive continua a ser executado.
> >
> > Algo similar - e talvez mais preocupante - pode ocorrer se você
> > carregar e descarregar vários aplicativos dinamicos através do
> > SWFLoader e do ModuleLoader. Você pode acabar por ter 3, 4 ou 5
> > módulos rodando por trás, mesmo que apenas um esteja aparecendo.
> >
> > Isso por exemplo não acontece no ViewStack, em que o componente não é
> > criado e destruído a cada momento. Veja: não é criado e destruído. O
> > problema é criar e destruir inúmeras vezes. Não é exibir e sumir.
> >
> > Desse modo, a arquitetura do seu sistema que tem que contemplar e
> > adereçar esse possível problema de memória.
> >
> > Eu demonstrei e propus um "workaround" para esse caso específico no
> > blog da DClick há uns tempos atrás:
> >
> > http://blog.dclick.com.br/2007/01/23/gerenciamento-de-memoria-e-taman...
> >
> > []s
> > Fabio Terracini
> >
> > On 8/29/07, Daniel Schmitz <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> > > 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
-~----------~----~----~----~------~----~------~--~---

Responder a