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

Visual C++ Discussion :

Fuites mémoires et OS


Sujet :

Visual C++

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 99
    Points : 52
    Points
    52
    Par défaut Fuites mémoires et OS
    Bonjour, je développe une appli de modélisation 3D avec MFC que j'ai proprifié au maximum : aucune fuite mémoire n'est retournée en sortie dans le mode DEBUG, aprés quantité de manipulations (ouverture de modele 3D, creation d'objets, operation booléenne, transformation....)

    Pourtant, lorsque je scrute le gestionnaire de tache, la mémoire allouée pour mon appli ne cesse d'augmenter au fur et à mesure de son utilisation... Notamment si j'ouvre un fichier (modele 3D) et que je fais "nouveau" sans autres opérations, la memoire allouée à l'ouverture du fichier n'est pas totalement lachée...

    C'est ce que j'observe sur mon ordi de dev avec win XP. Pour mon collegue sous seven qui teste le soft, aucun probleme de mémoire, a chaque ouverture-fermeture de modele, la memoire est totalement libérée !

    Je ne comprends pas trop où se situe le loup dans cette histoire de mémoire !
    Quelqu'un pour me donner des idées svp ?
    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 200
    Points : 12 354
    Points
    12 354
    Par défaut
    Pouvez-vous instrumenter votre code avec des outils de type BoundsChecker ?
    http://en.wikipedia.org/wiki/BoundsChecker

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 99
    Points : 52
    Points
    52
    Par défaut
    Je pourrais effectivement utiliser un vérifieur de mémoire, mais Visual est tout de même sensé me retourner les fuites, lorsqu'il y en a, en sortie de programme. Or il ne retourne plus de "dump - memory leak" et pourtant quand je regarde la mémoire allouée à mon programme dans le gestionnaires des taches, celle-ci ne cesse de croitre. Comme je l'expliquais, il suffit que j'enchaine les "Fichier/Nouveau..." (OnNewDocument) pour qu'encore plus de mémoire soit allouée... Bizarre non ?!!!!

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 200
    Points : 12 354
    Points
    12 354
    Par défaut
    Tout cela ne se fait pas par l'action du Saint-Esprit.
    Il faut faire des choses correctement et la plus belle fille du monde ne peut donner que ce qu'elle a.

    Les Vérificateurs de mémoires, ce n'est pas un joujou pour nerd, ça sert à quelque chose.

    Primo, ce n'est pas VS qui fait le "dump - memory leak" mais des MACRO dans les en-têtes MFC. "_CRTDBG_MAP_ALLOC" est ton ami.
    Donc tout le code non MFC, pas de dump.
    Si non configurer dans le projet, lors de la compilation, pas de dump.
    etc...

    et pourtant quand je regarde la mémoire allouée à mon programme dans le gestionnaires des taches, celle-ci ne cesse de croitre
    De quel mémoire parlez-vous ?
    Pour pouvoir faire le genre d'assertion que vous faites om faut connaître un minimum le modèle mémoire de Windows. Utilisez des outils dédiés. Le gestionnaire des tâches n'est pas fait pour ça et vous ne connaissez pas assez le modèle mémoire de Windows pour pouvoir en tirer la moindre conclusion.
    Regardez le nombre de compteur de performance disponible juste sur la mémoire d'un processus, avec perfmon.exe par exemple, pour vous rendre compte que vous ne voyez absolument rien de concret avec le gestionnaire des tâches.

    Si vous voulez jeter l'opprobre sur un bout de code, utilisez les outils dédiés pour cela.
    http://msdn.microsoft.com/en-US/libr...(v=vs.80).aspx

Discussions similaires

  1. [tomcat][memoire] java.net.URL et fuite mémoire
    Par Seiya dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 09/03/2009, 11h41
  2. [Fuites mémoire] Je cherche un utilitaire
    Par 10_GOTO_10 dans le forum C++Builder
    Réponses: 8
    Dernier message: 10/02/2005, 11h03
  3. Outil de recherche de fuite mémoire
    Par eag35 dans le forum MFC
    Réponses: 4
    Dernier message: 02/02/2005, 13h46
  4. [SWT]SWT et fuite mémoire(ou pas)
    Par menuge dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 22/06/2004, 22h40
  5. [debug] fuites mémoires
    Par tmonjalo dans le forum C
    Réponses: 3
    Dernier message: 28/07/2003, 18h20

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