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

Bibliothèques & Frameworks Discussion :

Memory leak & Dojo


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 72
    Points : 88
    Points
    88
    Par défaut Memory leak & Dojo
    Bonjour,

    Je suis actuellement sur un projet utilisant dojo version 1.3.2 et nous avons un soucis lors de son utilisation.

    Avec un heap memory chrome nous obtenons des memory leak (fuites mémoires) importantes lors de l'utilisation de nos fonctions.

    Pourriez-vous me donner des informations sur les choses essentielles à vérifier pour limiter les fuites mémoires, et vos idées pour obtenir des résultats plus précis que le heap memory de chrome qui réunit string/closure sans pouvoir obtenir des détails.

    Merci d'avance,

    L.

    PS : ceci étant un travail à caractère professionnel, je ne pourrais malheureusement pas vous faire part de code source ni d'informations complémentaires. c'est à ce titre que je vous demande des informations d'ordre générales.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 72
    Points : 88
    Points
    88
    Par défaut toujours aucunes réponses ???
    Aucunes réponses ????

    Si vous avez besoin de précisions n'hésitez pas à poser vos questions.

    Merci d'avance

  3. #3
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Bonjour,

    Malheureusement nous n'en savons pas plus que vous. Les personnes qui connaissent le mieux Dojo ici ne viennent pas sur ce forum ou bien n'ont plus l'occasion de venir.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 72
    Points : 88
    Points
    88
    Par défaut
    Bonjour,

    merci de votre réponse, je prend note de cette information et je vais donc un peu plus spammer le forum de dojo histoire d'obtenir une réponse.

    Je posterais la réponse ici dès que je l'aurais trouvée histoire de pouvoir renseigner d'autres personnes que cela pourrait intéresser

    Et au cas où, si quelqu'un a des informations qu'il n'hésite pas à poster

    A bientot.

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Points : 535
    Points
    535
    Par défaut
    Bonjour,

    Je ne vois pas trop ce que signifie "fuites de mémoires". Est ce que c'est une "trop grosse" utilisation de la memoire lors d'un chargement de dojo ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 72
    Points : 88
    Points
    88
    Par défaut
    Salut,

    fuite de mémoire : sur un périphérique Landa, tu fais tourner des applications gérées par dojo et lors de son utilisation tu fait des fonctions pour une utilisation précise par exemple tu peux créer un formulaire qui te permettrait de faire une fiche de contact. Tu génere donc un espace avec ce formulaire et lors de sa validation du detruit tous les UIElements créé temporairement.

    Cependant certains éléments ne sont pas détruits et restent donc en mémoire sur le périphérique. Par exemple des closures, des strings, des objets ou des arrays.

    Ce n'est pas le chargement meme de dojo, mais l'utilisation des fonctions de dojo. Par exemple l'utilisation du dojo.hitch provoque une perte de memoire s'il est couplé dans une action qui dure un certain temps.

    En espérant que cela t'éclaire un peu sur ce que j'appel une fuite mémoire.

    L.

  7. #7
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Points : 535
    Points
    535
    Par défaut
    Merci pour cette précision cela m'éclaire davantage.

    Malheureusement, je ne vois pas trop comment résoudre ce problème de fuites. Peut être en détruisant les objets manuellement ? Et encore ce n'est pas certain. Lorsque la page est totalement rafraichit, ces objets sont bien détruits ?
    Utilises tu le système de navigation de dojo ? avec les tabcontainer et les dojox.contentPane ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 72
    Points : 88
    Points
    88
    Par défaut
    Nous fonctionnons avec un systeme de création d'iframe avec une association d'un template, et la création de divers UIElements à l'intérieur.

    A ce jour les .Destroy() de dojo, les réinitilisation de variables crées à null ou à [] pour les Array sont fait. seulement certaines références cycliques doivent poser encore des problemes de leak par exemple. Ceci est un gros projet (10000 lignes de code au moins et a la louche) donc pas facile de tout y retrouver

    Nous utilisons Dojo, Dijit sur le systeme. Je ne suis pas expert Dojo mais je m'y forme en meme temps sur le tas. Expert jQuery pour ma part et Bon niveau Mootools.

    Cependant je suis en charge de supprimer ces fuites mémoires par tous les moyens et le plus rapidement possible.

    système de navigation de dojo : oui
    avec des tabcontainer et tout le tralalair

  9. #9
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour larffas68

    Désolé de remonter ce sujet, mais son contenu m'intéresse.
    As-tu avancé dans tes recherches et avez-vous trouvé des solutions?
    S'agit-il de problème de "fuite mémoire", ou de "mauvaise" gestion de celle-ci?
    Tu parles de dojo, est-il le responsable?

    Merci
    yonderboi

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 72
    Points : 88
    Points
    88
    Par défaut
    Bonjour,

    En fait nous avons remarqué plusieurs choses, tout d'abord oui l'utilisation du javascript et de dojo entraîne des fuites mémoires dites génériques (string, code, closures, array, objects). Les fonctions de destruction de dojo dojo.destroy, ou encore la nullification des arguments pour des fonctions asynchrones, ou encore l'utilisation de delete, permettent de libéré l'espace alloué. Cependant tout n'est jamais libéré.

    Par ailleurs il est bien important de penser à une chose pour limiter les fuites mémoires :

    Tout new entraîne un destroy, tout connect entraîne un disconnect, tout suscribe entraîne un unsuscribe.

    C'est un principe fondamental pour limiter et géré les fuites mémoires au mieux.

    J’espère avoir répondu à tes attentes,

    A+

  11. #11
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour larffas68

    Merci pour ces précisions.

    Je ne suis pas sûr d'utiliser les mêmes termes que toi, mais je vais essayer.
    Tu dis que tout ce qui a été créé doit être détruit pour récupérer la mémoire, là effectivement ça semble logique.

    Cependant tu dis que certaines fonctions de dojo ou façon de faire JavaScript empêchent la libération de la mémoire, donc génèrent des fuites?
    Donc soit les navigateurs sont perfectibles (lesquels supportez-vous?), soit dojo est perfectible?

    Ca mérite d'être investigué pour faire des remontés de bugs?


    yonderboi

Discussions similaires

  1. Compilation TAO / Mfc : Memory Leaks
    Par Rolsct dans le forum CORBA
    Réponses: 4
    Dernier message: 17/04/2005, 19h13
  2. [MFC] Thread & memory leaks
    Par Racailloux dans le forum MFC
    Réponses: 7
    Dernier message: 15/03/2005, 12h44
  3. Memory leak en C/C++
    Par Roswell dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 07/07/2004, 19h41
  4. [MFC] A la chasse au memory leak
    Par Yabo dans le forum MFC
    Réponses: 17
    Dernier message: 27/06/2004, 17h35
  5. Réponses: 7
    Dernier message: 26/02/2004, 09h32

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