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

Composants FMX Delphi Discussion :

fuite memoire FMX


Sujet :

Composants FMX Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 222
    Points : 55
    Points
    55
    Par défaut fuite memoire FMX
    bonjour
    sur le forum je viens de voir cette commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    reportmemoryleaksonshutdown=true;
    donc je l'ai essayé pour voir mes pertes de mémoire
    et j'ai sa

    comment faire pour les résoudre
    merci
    Images attachées Images attachées  

  2. #2
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Points : 1 946
    Points
    1 946
    Par défaut
    Bonjour,

    Et tu n'as pas les détails de ces fuites mémoire dans un fichier ? Le fichier se nomme ainsi NomDeTonApplication_MemoryManager_EventLog.txt dans le dossier ou se situe l'éxecutable de ton application

    Sinon il faut indiquer les options suivantes ( si je me souviens bien c'est en enlevant les commentaires ) dans le fichier FastMM4Options.inc :

    LogErrorsToFile et LogMemoryLeakDetailToFile

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 222
    Points : 55
    Points
    55
    Par défaut
    bonjour
    et merci pour ton aide
    mais je n'ais pas trouvé aucun des tes fichiers mentionnés
    ++

  4. #4
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Points : 1 946
    Points
    1 946
    Par défaut
    Cela fait tellement longtemps que j'ai installé FastMM4...

    Tu dois avoir un fichier FastMM4Options.inc lorsque tu as installé FastMM4 ou sinon récupères le depuis le net et il faut mettre ce fichier dans le dossier de ton projet

    https://github.com/pleriche/FastMM4/...MM4Options.inc

    Et dans ce fichier il faut 'décommenter' les options que tu as besoin comme celle que je t'ai indiqué

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 222
    Points : 55
    Points
    55
    Par défaut
    bonjour
    ok
    vais aller voir de ce pas
    merci encore

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 222
    Points : 55
    Points
    55
    Par défaut
    bonjour
    je viens de télécharger le programme FastMM4.pas

    que je met dans mon répertoire ou il as déjà le Unit1.pas
    ensuite dans le projet j' ajoute en premier avant unit1.pas
    j'ajoute aussi FastMM4.pas dans le uses de unit1.pas

    je modifie le programme FastMM4Options.inc

    en enlevant les options LogErrorsToFile et LogMemoryLeakDetailToFile

    et ensuite je lance mon programme comme habitude
    ou je dois mettre dans le form1.formcreate de unit1.pas une fonction appelle
    merci

  7. #7
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Points : 1 946
    Points
    1 946
    Par défaut
    Bonjour,

    Désolé mais j'ai du mal à comprendre ta question.

    Pour utiliser FastMM4 et de mes souvenirs, j'ai mis le dossier complet de FASTMM4 dans un dossier que je spécifie dans les options de Delphi ( chemins de bibliothèque )

    Ensuite j'ai mis dans le fichier source du projet ( fichier .drpj ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    {$IFDEF Debug} // 24/10/2018 - FastMM details enable
      {$INCLUDE FastMM4Options.inc}
      (* les options de FastMM sont à établir dans le fichier .inc et non pas ci dessous
      {$define FullDebugMode}
      {$define LogErrorsToFile}
      {$define LogMemoryLeakDetailToFile}
      *)
    {$ENDIF }
    Comme tu peux le voir j'utilise FastMM4 uniquement en mode Debug et j'ai mis l'option FullDebugMode dans le .inc

    Et au final dans le source de la form principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // le 24/10/2018 : Affiche les blocs de mémoire non libérés ( en mode debug seulement )
    {$IFDEF DEBUG}
    initialization
      System.ReportMemoryLeaksOnShutdown := (DebugHook <> 0); // report memory leaks when exiting the application only on debug mode
    {$ENDIF}
    Voilà, j'espère n'avoir rien oublié...

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 097
    Points : 41 081
    Points
    41 081
    Billets dans le blog
    62
    Par défaut
    ReportMemoryLink ne fait qu'indiquer les fuites, dans ton cas, il s'agit probablement d'un Composant créé au runtime et non détruit.
    A la vue des objets, je parierais pour un objet graphique genre, vu que c'est FMX, un TPath
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 222
    Points : 55
    Points
    55
    Par défaut
    bonjour
    une tpath oublier de libérer ?
    pour mon puzzle je crais soit 16 32 ou 64 tpathdata
    mais des qu'ils sont dans le bitmap je les détruit
    autrement aucun autre pathdata dans le source;
    par contre je crais des Trectangle mais eux aussi sont détruit tous comme mes bitmaps
    quand nouvelle partie
    dans le onclose de form1 par sécurité je les détruit aussi
    si ils sont diffèrent de nil



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    piece[n]:=tpathdata.create();
     
    .......
    .........
    .........
    piece[n].free;

  10. #10
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Points : 1 946
    Points
    1 946
    Par défaut
    Le mieux est de faire générer les détails par fastMM4 comme j'ai indiqué, dans le fichier que génère FastMM4 tu peux connaitre dans quelle unité et à quelle ligne de code se situe la fuite mémoire mais bien sûr en mode debug seulement

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 222
    Points : 55
    Points
    55
    Par défaut
    bonjour
    bon j'arrête pour instant
    j'ai suivi tous tes commentaires mais quand je lance mon application
    Fastmm me signale un problème de mémoire et ne peux s'exécuter
    je fais ok et mon jeu se lance mais aucun fichier en sortie
    par contre je vous montre une copie écran de mon puzzle avec des pièces découpées
    et transparence
    Images attachées Images attachées  

  12. #12
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 097
    Points : 41 081
    Points
    41 081
    Billets dans le blog
    62
    Par défaut
    Ah, il s'agissait du Puzzle, joliment avancé

    je remarque beaucoup de x15 et non 16 (nombre de pièces) un problème fdans la routine de création de pièce ? (Si je me souviens de ton ancien post sur la transparence, flemme de chercher)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 222
    Points : 55
    Points
    55
    Par défaut
    bonjour
    merci je vais aller voir de ce coté la
    surement une boucle

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, 10h41
  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, 10h03
  3. Outil de recherche de fuite mémoire
    Par eag35 dans le forum MFC
    Réponses: 4
    Dernier message: 02/02/2005, 12h46
  4. [SWT]SWT et fuite mémoire(ou pas)
    Par menuge dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 22/06/2004, 21h40
  5. [debug] fuites mémoires
    Par tmonjalo dans le forum C
    Réponses: 3
    Dernier message: 28/07/2003, 17h20

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