|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Laurent S.Inscription : novembre 2010 Messages : 71 ![]() |
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. |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Laurent S.Inscription : novembre 2010 Messages : 71 ![]() |
Aucunes réponses ????
Si vous avez besoin de précisions n'hésitez pas à poser vos questions. Merci d'avance |
|
|
00
|
|
|
#3 |
![]() ![]() ![]() Inscription : mars 2008 Messages : 2 681 ![]() |
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. |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Laurent S.Inscription : novembre 2010 Messages : 71 ![]() |
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. |
|
|
10
|
|
|
#5 |
|
Membre éprouvé
![]() Gibot DanielInscription : janvier 2010 Messages : 313 ![]() |
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 ? |
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Laurent S.Inscription : novembre 2010 Messages : 71 ![]() |
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. |
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Gibot DanielInscription : janvier 2010 Messages : 313 ![]() |
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 ? |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Laurent S.Inscription : novembre 2010 Messages : 71 ![]() |
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 |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 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 |
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Laurent S.Inscription : novembre 2010 Messages : 71 ![]() |
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+ |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 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 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com