Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3036 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Gestion de la mémoire / recherche de fuites

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gestion de la mémoire / recherche de fuites

n°2177544
jipo
Kamoulox !
Posté le 26-02-2013 à 14:05:09  profilanswer
 

Salut à tous,
 
J'ai besoin d'un peu d'aide.
Voilà la situation :
Je maintiens une application en C++ d'un demi million de lignes de code.
Les librairies utilisées sont celles de feu Ilog Views (Views 5.1 et Dblink 5)
L'éditeur utilisé est Visual Studio .NET 2003 (je sais on est à la bourre  :whistle: )
 
Suite à une remontée utilisateur, il s'avère qu'une longue utilisation de l'application a pour effet la perte de performances au niveau des interactions avec le grapher Ilog Views.
Pour information, le grapher est un conteneur graphique dans lequel nous créons des objets graphiques en 2D avec lesquels l'utilisateur peut interagir (création de nouveaux objets graphiques, sélection/suppression, sélection/déplacement, etc ...)
En utilisant le gestionnaire de tâches, je me suis aperçu qu'à chaque cycle où on vidait le grapher de ses objets et on le remplissait avec les mêmes objets, la mémoire utilisée par le processus de l'application augmente.
Selon moi cela ne doit pas être le cas. Lors d'un cycle remplissage/vidage, l'utilisation de la mémoire par le processus doit théoriquement revenir au même niveau qu'avant le cycle.
Il y a donc des fuites mémoire. Malheureusement, j'ai vérifié qu'on passait autant de fois dans les destructeurs des classes pour les objets graphiques supprimés du grapher que de fois dans les constructeurs de ces mêmes classes.  
 
1/ Pourrait il y avoir une autre explication que la fuite mémoire ? Autrement dit l'augmentation constante de la mémoire utilisée par le processus provient elle obligatoirement d'une fuite mémoire ?  
 
2/ Etant donné que la "fuite" semble provenir du grapher Ilog, y a-t-il moyen de le vérifier (sachant que je n'ai pas accès au code des DLL Ilog) ?
 
3/ J'essaie d'implémenter les outils de VLD ( => http://vld.codeplex.com/ ) afin de détecter d'éventuelles fuites. Est-ce que vous avez un peu d'expérience concernant cet outil ?
J'ai tout essayé, il semble que l'appel aux fonctions VLDEnable() et VLDDisable() n'ait aucun impact. Le dump n'est pas généré.
 
4/ Connaissez vous d'autres outils (simples à mettre en oeuvre et gratuits  :whistle: ) qui me permettraient d'avancer sur cette problématique ?
 
Je vous remercie par avance pour votre aide.  


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
mood
Publicité
Posté le 26-02-2013 à 14:05:09  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Gestion de la mémoire / recherche de fuites

 

Sujets relatifs
Recherche d'un template wordpress simple et épuré[AHK] recherche un script multibind AutoHotkey
Recherche script ou une aide pour la création d'un script.Afficher ligne de la valeur recherché
méthode de recherche récursive d'un noeud en XML avec JDOM[SQL] Requete gestion stock ???
recherche infos sur la création de site internet..Recherche Tutoriel sur l’URL Rewrite Module de IIS 7 avec de l'ASP c
stage en licence troisième année economie gestionrecherche expert en PERL
Plus de sujets relatifs à : Gestion de la mémoire / recherche de fuites


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR