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 -~----------~----~----~----~------~----~------~--~---
