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

 Delphi Discussion :

J'ai un message lors de la fermeture de mon appli : Fuite mémoire inattendue


Sujet :

Delphi

  1. #1
    Membre régulier

    Homme Profil pro
    Direction financière et formateur en gestion et contrôle de gestion
    Inscrit en
    Mai 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Direction financière et formateur en gestion et contrôle de gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2003
    Messages : 185
    Points : 119
    Points
    119
    Par défaut J'ai un message lors de la fermeture de mon appli : Fuite mémoire inattendue
    Bonjour à tous,
    Bon, je suis confronté au message suivant quand je termine mon appli compilée sous Delphi 10.2.3
    Nom : Capture.JPG
Affichages : 348
Taille : 26,9 Ko
    Je ne sais pas comment lire ce message ... j'ai juste compris qu'il y avait des fuites mais ...

    Si vous pouvez m'aider ...
    Merci beaucoup
    Delphi 10.4.1 - Lazarus
    Utilisation de la VCL

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Cela signifie qu'a un moment tu créées un TBrush et autres objet que tu ne libères pas.

  3. #3
    Membre régulier

    Homme Profil pro
    Direction financière et formateur en gestion et contrôle de gestion
    Inscrit en
    Mai 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Direction financière et formateur en gestion et contrôle de gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2003
    Messages : 185
    Points : 119
    Points
    119
    Par défaut
    J'ai fais le tour des .Create ... je n'ai pas créé de TBrush, ni de TPen ... les seules créations sont des StringGrid, des FicIni, des TFileListBox, des TTabSheet, des Tmouse.
    Aie aie aie ...
    Delphi 10.4.1 - Lazarus
    Utilisation de la VCL

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 691
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 691
    Points : 13 121
    Points
    13 121
    Par défaut
    Il faut toujours prendre les fuites mémoires à la sortie du programme avec un certain recul. Simplement parce que la mémoire du processus sera entièrement libérée à sa terminaison (l'OS s'en charge).

    Par contre, si après plusieurs tests sur la durée (principalement des apps tournant 24/24) ces fuites fluctuent/augmentent, là il y a un problème à corriger impérativement.

    Ici les fuites sont liées. Il y a une ImageList qui manifestement ne peut pas (ou n'a pas) être libérée correctement (VA dans un destructeur ou allouée dynamiquement sans être proprement libérée ? A voir)
    Si l'ImageList ne peut pas être libérée, le bitmap qu'elle contient ne l'est pas non plus, ni le canvas de ce dernier, ni sa police, ni sa brosse, ni son pinceau. C'est la cascade !

    Intéresse-toi à cette ImageList et tous les problèmes seront résolus d'un coup

  5. #5
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Bonjour,

    Je pense que si cette boite de dialogue s'affiche à la fermeture de l'application c'est parce que l'option ReportMemoryLeaksOnShutdown a été activé.
    Du coup le plus simple est de coupler ça avec FastMM pour récupérer plus d'informations sur ces fuites de mémoires.

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    madExcept est aussi très bien foutu pour identifier les fuites de mémoire
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Membre régulier

    Homme Profil pro
    Direction financière et formateur en gestion et contrôle de gestion
    Inscrit en
    Mai 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Direction financière et formateur en gestion et contrôle de gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2003
    Messages : 185
    Points : 119
    Points
    119
    Par défaut
    Je clos le sujet, j'ai trouvé, non pas la solution, mais ...
    Je déployais mon logiciel en mode débogage, quand je l'ai passé en Release, terminé, plus de message lié à la fuite de mémoire.
    Delphi 10.4.1 - Lazarus
    Utilisation de la VCL

  8. #8
    Membre actif Avatar de oneDev
    Homme Profil pro
    dilettant
    Inscrit en
    Mars 2019
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : dilettant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 213
    Points : 222
    Points
    222
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    madExcept est aussi très bien foutu pour identifier les fuites de mémoire
    C'est également la méthode que j'utilise pour identifier et corriger les fuites mémoires.
    J'ai passé plusieurs semaines sur une grosse appli à supprimer ces fuites mémoires, c'est parfois un vrai casse-tête !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Message lors de la fermeture brutale d'une application
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 06/09/2010, 09h50
  2. Message Box a la fermeture de l'appli
    Par kazylax dans le forum VB.NET
    Réponses: 16
    Dernier message: 07/03/2008, 16h43
  3. Message lors de la fermeture d'un formulaire
    Par zouloute dans le forum IHM
    Réponses: 8
    Dernier message: 15/02/2008, 16h57
  4. Problème lors de la fermeture de mon MsRdpClient
    Par seb.49 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/01/2008, 08h47
  5. [EasyPHP] Pb lors de la fermeture de mon application avec ou sans fermeture de Easy Php
    Par Lolie11 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 04/06/2007, 10h38

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