oui des fois j utilise FCNG comme un scratch book

donc liens interessants a propos de la memoire et quelques notes
car tout le monde a pas forcement le meme avis ou point de vue

AS3: Resource Management pt 1
http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html

AS3: Resource Management pt 3
http://www.gskinner.com/blog/archives/2006/08/as3_resource_ma_2.html

Garbage Collector Interactive Simulator
http://www.gskinner.com/blog/archives/2006/09/garbage_collect.html

Failure to Unload: Flash Player 9's Dirty Secret
http://www.gskinner.com/blog/archives/2008/04/failure_to_unlo.html

Flex Performance, Memory Management, & Object Caching
http://www.insideria.com/2008/03/flex-performance-memory-manage.html

Garbage collector in Flash Player 9/Actionscript 3
http://blog.comtaste.com/2008/04/garbage_collector_in_flash_pla.html

Flash Player Memory Management and Garbage Collection redux.
http://blog.flexmonkeypatches.com/2007/03/28/flash-player-memory-management-and-garbage-collection-redux-2/

Garbage Collection and Memory Leaks
http://blogs.adobe.com/aharui/2007/03/garbage_collection_and_memory.html
(downloader le ppt ca explique tout bien
http://blogs.adobe.com/aharui/GarbageCollection/GCAtomic.ppt)

Kick starting the garbage collector in Actionscript 3 with AIR
http://www.craftymind.com/2008/04/09/kick-starting-the-garbage-collector-in-actionscript-3-with-air/

Flash Player Mental Model - The Elastic Racetrack
http://www.onflex.org/ted/2005/07/flash-player-mental-model-elastic.php


a retenir: les 3 derniers links

ce que j'ai pu verifier c'est que le Elastic RaceTrack influe
directement sur ce que la GC peut virer ou pas

en gros, 2 choses importantes cohabitent en memoire
- Object Memory
  le code AS3 dans le bytecode
- Render Memory
  le rendu gfx DisplayObject etc. a l'ecran

le 1er (Object Memory) peut se virer plus ou moins facilement de la
memoire
a condition de ne pas creer de memory leaks
- si addEventListener utiliser removeEventListener
- dans certains cas utiliser des events en weak reference (mais pas
forcement par defaut partout)
- utiliser les Dictionary aussi en weak reference
- un simple Object utiliser comme un hash peut aussi creer des memory
leaks
- etc.
(voir GCAtomic.ppt ou tout est explique en detail)

pour Flex en cas particulier
- faire gaffe de ne pas initialiser depuis un Module un Manager, genre
le PopUpManager
- si vous utilisez des mx:Style tag partout et bah vous les virer et
utiliser des CSS externe compilees
  sinon ca vous fera ca http://bugs.adobe.com/jira/browse/SDK-15621
  et plein de memory leaks partout
- etc.

le 2nd (Render Memory) est vachement plus chiant a virer de la
memoire,
si vous etes vraiment force il faut jouer sur le passage d'uen frame a
l'autre
(voir "Kick starting the garbage collector in Actionscript 3 with
AIR")
et en fait double kicker la GC, un coup pour le mark et un autre coup
pour le sweep,
et forcement comme System.GC() n'est dispo que dans le debug player et
bah oui
il faudra utiliser le hack de LocalConnection appeler 2 fois, donc
avec un player non-debug
ca vous donnera a peu pres ca:

         private function _forceMarkSweep():void
         {
            try
            {
               new LocalConnection().connect( "foobar" );
               new LocalConnection().connect( "foobar" );
            }
            catch( e:* )
            {

            }
         }

- frame 1
  _forceMarkSweep()
- frame 2
- frame 3
  _forceMarkSweep()


et encore meme en faisant ca il peut y avoir des cas ou le player
liberera la memoire quand il veut, bref rien de garantie a 100%

idealement: attendre le FP10

techniquement avec juste FP9, oui c'est possible, mais tres tres tres
dure
surtotu si vous utilisez de mxml, si vous gerer tout en AS3 plus
facile

zwetan



--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "FCNG" de 
Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [EMAIL PROTECTED]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/FCNG?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à