Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Dojo
Dojo Forum d'entraide sur le framework Dojo
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2010, 12h19   #1
Membre régulier
 
Laurent S.
Inscription : novembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Laurent S.
Âge : 25
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 71
Points : 77
Points : 77
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.
larffas68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 13h04   #2
Membre régulier
 
Laurent S.
Inscription : novembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Laurent S.
Âge : 25
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 71
Points : 77
Points : 77
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
larffas68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 13h27   #3
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 681
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 681
Points : 5 757
Points : 5 757
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.
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h06   #4
Membre régulier
 
Laurent S.
Inscription : novembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Laurent S.
Âge : 25
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 71
Points : 77
Points : 77
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.
larffas68 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/12/2010, 09h50   #5
Membre éprouvé
 
Gibot Daniel
Inscription : janvier 2010
Messages : 313
Détails du profil
Informations personnelles :
Nom : Gibot Daniel
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2010
Messages : 313
Points : 439
Points : 439
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 ?
Daniel_Gibot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 10h42   #6
Membre régulier
 
Laurent S.
Inscription : novembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Laurent S.
Âge : 25
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 71
Points : 77
Points : 77
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.
larffas68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 10h48   #7
Membre éprouvé
 
Gibot Daniel
Inscription : janvier 2010
Messages : 313
Détails du profil
Informations personnelles :
Nom : Gibot Daniel
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2010
Messages : 313
Points : 439
Points : 439
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 ?
Daniel_Gibot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h40   #8
Membre régulier
 
Laurent S.
Inscription : novembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Laurent S.
Âge : 25
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 71
Points : 77
Points : 77
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
larffas68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 13h33   #9
Invité de passage
 
Homme
Inscription : mars 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mars 2011
Messages : 2
Points : 2
Points : 2
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
yonderboi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 09h12   #10
Membre régulier
 
Laurent S.
Inscription : novembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Laurent S.
Âge : 25
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 71
Points : 77
Points : 77
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+
larffas68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 09h37   #11
Invité de passage
 
Homme
Inscription : mars 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mars 2011
Messages : 2
Points : 2
Points : 2
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
yonderboi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h52.


 
 
 
 
Partenaires

Hébergement Web