IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

[SL3]Probléme de fuite mémoire


Sujet :

Silverlight

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 156
    Points : 173
    Points
    173
    Par défaut [SL3]Probléme de fuite mémoire
    Bonjour,

    Je m'explique je viens de découvrir qu'en dotnet en général le piège pour créer des fuites mémoire et le non désabonnement aux events.
    Du coup mon applis en est truffé, et elle leak pas mal.

    Donc je me pose la question : quel stratégie adoptez vous en Silverlight pour ne pas gérer votre mémoire??
    Je bloque c'est sur le désabonnement des évènements?
    Comment les gérer vous : au cas par cas??
    Dans chaque vue vous avez une méthode Unsubcribe que vous appellez avant la destructions de l'objet??
    Sur les objets qui ont bcp d'event vous écrivez une méthode permettant de désabonner tout les écouteurs??


    Moi je dois vous avouer que je suis partit un peu dans les deux sens je m'explique : sur les objets de récupération de données (WCF) qui ont beaucoup d'event j'ai deux méthode :
    - int UnsubscribeAll() désabonne de tout les évènement de l'objet tout les écouteur
    - int UnsubcribeObject(object toUnsucribe) désabonne le listener de tout les évènement de l'objet(si il y ait accroché)

    Et après sur chaque listener implemente IDisposable et dans la méthode dispose appelle les méthodes UnsubcribeObject.
    Le problème c'est qu'il faut appelle les Dispose de tout ces objets, si on en oublie un et ben toute notre logique de désabonnement ne sert plus a rien.


    Dans les cas ou je sais qu'il ne doit plus y avoir d'évènement accroché sur mes objects à event j'exécute UnsubscribeAll.

    Avez vous quelque chose de mieux?
    Car j'ai l'impression d'avoir fait bien compliquer pour être sur de ne pas avoir de fuites mémoire.

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Et en utilisant le WeakEvent pattern ?

    http://blog.thekieners.com/2010/02/1...r-silverlight/
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 156
    Points : 173
    Points
    173
    Par défaut
    Ça me parait être exactement ce que j'ai besoin!!
    Je laisse le thead ouvert pour voir si d'autre personne ont des témoignages sur le sujet!!

    Autre question quels memory profiler utlisez vous pour silverligth??

  4. #4
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    Bonjour, pensez vous que le WeakEvent pattern soit nécessaire à implémenter dans une application silverlight ? orienté donnée ou non ?

    Cordialement MoZo

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 156
    Points : 173
    Points
    173
    Par défaut
    Le problème de ce WeakEvent pattern c'est qu'il est fait pour des EventSource qui ont qu'un seul event.

    Du coup ça marche effectivement bien sur des objets de type INotifyProperty.

    Mais la dans mon cas mon objet qui est exposé à une 20 aines d'events bah il est pas adapté.
    Je vais essayé de trouvé une autre solution.

    Peut être quelqu'un a déjà codé un WeakEventsListener?

    Je vous tien au courant de mes avancées.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 156
    Points : 173
    Points
    173
    Par défaut
    Je vous partage 2 liens intéressant sur les fuites mémoires en dotnet:

    http://www.dng-consulting.com/blogs/...-moir-1?blog=1

    http://blogs.msdn.com/jgoldb/archive...lications.aspx

Discussions similaires

  1. [OpenOffice][Tableur] problème de fuites mémoires
    Par sephial dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 23/11/2009, 17h26
  2. Problème de fuites mémoire
    Par Le Barde dans le forum C++
    Réponses: 12
    Dernier message: 02/09/2007, 08h49
  3. [VB6] Problème de fuite mémoire
    Par GyLes dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/03/2007, 14h58
  4. [C++] problème de fuite mémoire
    Par Cirdan Telemnar dans le forum C++
    Réponses: 26
    Dernier message: 16/06/2006, 10h16
  5. Problème de fuite mémoire sur un idFTP
    Par jeromelef dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/07/2005, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo