Flex Profiler – Optimiser votre application Flex avec le Profiler de Flex Builder 3 (Partie 2)
Flex Profiler – Optimiser votre application Flex avec le Profiler de Flex Builder 3 (Partie 1)
Détecter une fuite mémoire grâce aux Memory Snapshot
On va maintenant utiliser notre application pour voir où se situe notre Memory Leak. Ouvrez l'application en mode Flex Profiler et ouvrez/fermez plusieurs fois une fenêtre de dialogue. Normalement, une fois que l'on a fait PopUpManager.removePopUp(this), l'objet LeakyDialog (la fenêtre) devrait être vidé de la mémoire. Regarder la partie Live Objects, qui compte les instance d'objets dans votre application. Vous devriez avoir quelque chose comme ceci:
Comme vous pouvez le constater, on a maintenant 5 (+ ou – suivant le nombre de fois où vous avez ouvert/fermé la fenêtre) instances de LeakyDialog (cf. colonne Instances). Vous pouvez essayer de lancer une Garbage Collection sur votre application, il y aura toujours autant d'instances de LeakyDialog.
Prenez un Memory Snapshot pour pouvoir analyser le contenu de la mémoire et les références vers ces LeakyDialog. Cliquez donc le bouton "Take Memory Snapshot" (voir liste dans la partie 1) pour pouvoir analyser les résultats en détails.
Flex Profiler – Optimiser votre application Flex avec le Profiler de Flex Builder 3 (Partie 1)
Dans les précédents tutoriaux sur le Garbage Collector AS3 et la gestion des ressources dans une application Flex, vous avez pu voir comment était gérée la mémoire dans une application Flex (ou Adobe Air). Pour traquer ces fuites mémoire (Memory Leaks), vous pourriez regarder gonfler/dégonfler votre navigateur dans le gestionnaire des tâches ou bien utiliser la variable System.totalMemory offerte par flash qui indique quelle place prend votre application en mémoire. Cette technique est plutôt archaïque et ne peux pas vous permettre de gérer efficacement la mémoire utilisée par votre application en temps réel.
Heureusement, Flex Builder 3 propose un outil très utile appelé Flex Profiler. Il permet (entre autres) de visualiser le nombre d'instance et la taille en mémoire de tous les objets de votre application durant son exécution.
Dans cet article, je vais vous montrer comment utiliser ce Flex Profiler afin de visualiser les fuites mémoire de votre application. Pour que tout le monde parte de la même base, je vais expliquer le fonctionnement du Flex Profiler sur un projet crée pour l'occasion.
Télécharger le projet exemple du Flex Profiler FB3
Pour utiliser ce projet, créez simplement un nouveau projet nommé ProfilerScenarios dans Flex Builder 3, dezippez l'archive et remplacez le dossier src.





