Accueil > Forum > > > > Fuites de mémoire ? ou pas ...
Fuites de mémoire ? ou pas ...
lundi 24 avril 2006 à 21:27:39 |
Fuites de mémoire ? ou pas ...

florenth
|
Bonsoir les amis, Je suis en plein développement (jusque là, c'est normal  ) et je voulais savoir si mes objets sont bien tous libérés quand je quitte mon programme (là, aussi c'est encore normal). Pour le moment, je vérifiais juste que, à chaque TObject.Create, il y ait bien un Object.Free d'appelé. Mais là, j'arrive à un stade où cette technique montre ces limites car: - Mon unité commence à bien grossir: c'est un peu délicat de s'y pronener ... - Mes objets "s'échangent" des références vers d'autres objets. Résultat: c'est pas forcément celui qui l'a crée qui le détruit. Bon, je fais attention de tout bien libérer mais je voulais juste savoir si vous connaissiez (par hazard  ) un moyen qui permet de voir s'il y a des futes de mémoires ou autres problèmes du genre. Merci d'avance ! Si tu ne te plantes pas ...... tu ne pousseras jamais
|
|
lundi 24 avril 2006 à 21:56:09 |
Re : Fuites de mémoire ? ou pas ...

shining
|
Réponse acceptée !
tiens previens moi une fois télécharger que je le del !!!
http://shining-world.chez.tiscali.fr/download/MemoryLeakTracker.rar
|
|
lundi 24 avril 2006 à 22:03:05 |
Re : Fuites de mémoire ? ou pas ...

florenth
|
Je l'ai téléchargé mais pas encore testé. Ca à l'air sympa. Pourquoi ne pas le laisser en ligne histoire que toutle monde en profite ?
Merci shining, je t'avertirai une fois que je l'aurai testé (pas avant demain)
Si tu ne te plantes pas ...... tu ne pousseras jamais
|
|
lundi 24 avril 2006 à 22:50:26 |
Re : Fuites de mémoire ? ou pas ...

Delphiprog
|
Réponse acceptée !
Salut les jeunes  Il y a aussi memproof (gratuit et bien fait). " c'est pas forcément celui qui l'a crée qui le détruit" Bien que ce ne soit pas interdit, ce n'est pas une bonne méthode de programmation. Quand ça devient trop complexe, on finit par s'y perdre et ne plus savoir qui est responsable de quoi. May Delphi be with you !
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
|
|
mardi 25 avril 2006 à 08:49:04 |
Re : Fuites de mémoire ? ou pas ...

florenth
|
"Bien que ce ne soit pas interdit, ce n'est pas une bonne méthode de
programmation. Quand ça devient trop complexe, on finit par s'y perdre
et ne plus savoir qui est responsable de quoi."
=> Je suis bien au courant. Mais là, pour le moment, je n'ai pas trouvé d'autre solution. Mais j'y refléchis ... En attendant, un programme comme celui que tu m'as donné est toujours utile dna sma boite à outils.
Tu dis que c'est pas recommandé, OK. Mais quand on fait ça par exemple :
procedure TFrmPrinc.FormCreate(Sender: TObject); var M: TMyClass; begin FObjLst := TObjectList.Create(True); // OwnObjects = True;
M := TMyClass.Create; M.Prop1 := 310;
FObjLst.Add(M); end;
procedure TFrmPrinc.FormDestroy(Sender: TObject); begin FObjLst.Free; end;
Là , c'est bien le cas, non ? Allez, je lance un 'mini' débat de programmation parce que ça faisait un moment que c'était pas arrivé.
@ ++
Si tu ne te plantes pas ...... tu ne pousseras jamais
|
|
mardi 25 avril 2006 à 09:05:58 |
Re : Fuites de mémoire ? ou pas ...

florenth
|
@ Delphiprog: je viens de tester ton programme. Il est super, mais quand je ferme l'application que j'étudiais, il me dit que la RTL n'a pas fait appel à VirtualFree() ou quelque chose comme ça. Sinon, à part ça, avant le traitement complexe, j'ai 520 pointeurs. Pendant, ça monte à dix mille (!) et après, ça redescend pile à 520. Ouf ! Pas de fuites de mémoire ?! Mais dans le "current size" à la ligne "Pointers" la valeur ne redescend pas. Etrange ...
J'ai pas encore lu toute l'aide mais ça me parait bizarre.
@ Shining : devantla qualité dz programme MemProof, je crois que je vais laisser ta solution de côté.
Si tu ne te plantes pas ...... tu ne pousseras jamais
|
|
mardi 25 avril 2006 à 14:25:04 |
Re : Fuites de mémoire ? ou pas ...

shining
|
Okay ça fait un moment que j'avais ces codes je voulais en faire profiter les gens bien que je n'ai pas encore eu le temps de faire des tests
concernant memdebug.zip voici les commenaites de l'auteur
Use of it is very simple - include MemDebug.pas to first line of your project's uses clause. You will need also to enable detailed map in project/options/linker. Compile your project. Run MS WinDbg (available for free download on http://www.microsoft.com/msdn/downloads/ and select programm/open/new/ . After
executing you will see string "Dumping memory leaks" and some addresses from top of stack" in form .[]. in command window of WinDbg.
il faut mettre cette unité en 1er dans la clause uses !!!
ce n'est pas grave car au moins on peut jetter un coup d'oeil au code source tandis que memproof n'est pas public source !!!
PS : Delphiprog LOL mais bon chuis un newbie en google :p
|
|
mardi 25 avril 2006 à 22:08:29 |
Re : Fuites de mémoire ? ou pas ...

Delphiprog
|
Florenth : on ouvre un nouveau topic ou pas ?
Dans l'exemple que tu donnes, il n'y a pas de problèmes tant que le paramètre OwnsObjects est à vrai.
Ce que je voulais dire, c'est que quand tu écris une fonction qui renvoie une référence sur un objet, là il faut être très vigilant. var Obj: TObject;
function CreateObject: TObject; begin Result := TObject.Create; end;
procedure Machin; begin Obj := CreateObject; end;
procedure Truc; begin Obj.Name := 'Bidon'; end;
L'exemple est caricatural mais significatif. Va savoir, dans le déroulement du programme, qui est chargé de détruire la variable globale et à quel moment il faut le faire, sans compter qu'en cas de plantage du programme...
May Delphi be with you !
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
|
|
mercredi 26 avril 2006 à 00:08:52 |
Re : Fuites de mémoire ? ou pas ...

f0xi
|
un coup de main grand ? je suis assé bon pour aller depatouiller les "merdiers" dans les codes... oublis pas aussi de faire un shema papier du genre diagrame ou tout simplement de le faire avec l'outils de delphi... ça peut etre utile pour s'y retrouver.
|
|
mercredi 26 avril 2006 à 10:04:29 |
Re : Fuites de mémoire ? ou pas ...

florenth
|
@ Delphiprog : ouvrir un sujet ? Comment ça ? Sinon, dans l'exemple que tu donnes, c'est vraiment caricatural, mais tu l'as dit. En plus, il s'agit d'une variable globale ... Parmi toutes les sources que j'ai, je n'ai pas une seule variable globale (sauf celles des fiches gérées par Delphi bien sur). Tout le reste est dans des classes. C'est comme ça depuis que je comprend cette notion. @ f0xi: "je suis assé bon pour aller depatouiller les "merdiers" dans les codes...". Attention, tu insinues que ton code est un merdier ...  . Sinon, c'est gentil de vouloir m'aider mais je vais pas poster mon unité de 5000 lignes ici.(dont 2500 de commentaires lol) "oublis pas aussi de faire un shema papier du genre diagrame ou tout simplement de le faire avec l'outils de delphi... ça peut etre utile pour s'y retrouver." Mais ça, je le fais déjà dans ModelMaker. Mais là, j'étais un peu coincé. Enfin ... j'ai changé quelques trucs et puis j'ai utilisé le programme que donne Delphiprog et là, ça marche. @ + Florent Si tu ne te plantes pas ...... tu ne pousseras jamais
|
|
Cette discussion est classée dans : normal, mémoire, juste, objets, fuites
Répondre à ce message
Sujets en rapport avec ce message
Libération de ressources [ par nicolaspennaneach ]
j'ai une application MDI où chaque fenètre enfant possède un thread pour effectuer certaines opérations. Lorsque j'exécute la méthode formclose d'une
partager de la mémoire [ par mounjetado ]
bonjour,existe-t-il un cours complet et détaillé, avec des exemples, sur l'utilisation des objets de synchronisation , tels que mutex, sémaphores, sec
Lecture et écriture en mémoire [ par PHIL63 ]
Bonjour à tous et à toutes,Mon souci :J'ai des adresses mémoire pour un logiciel donné et j'aurais besoin d'accèder directement à ces zones mémoire en
Acces directe à la mémoire d'une carte SD [ par godardth ]
Bonjour,Voici mon problème : je développe une petite application electronique qui utilise une carte SD pour stocker un fichier son (format wave). Ce f
Les outils de connections à partir d'un Serveur [ par leader2000 ]
Salut!J'ai une question qui paraitrait ''stupide''. Mais elle vaut de l'or pour moi.J'aimerai faire un tout petit programme juste de consultation SEUL
Mettre disable juste les samedi et dimanche sur un montcalendar [ par vieuxpere ]
Bonjour,Je souhaiterai savoir si c'est possible de mettre juste en disable toutes les dates d'un monthcalendar qui correspondent aux samedi et dimanch
serialisation: heritage & évolutivité [ par Guillemouze ]
Salut tout le monde,je suis sur un probleme de serialisation de mes objets, et je cherche une maniere efficace pour la sauvegarde/chargement.Ma struct
Problème TCollection dans inspecteur d'objets [ par ThWilliam ]
Bonjour à tous. Voici mon problème :Je construis un composant qui utilise entre autre un TCollection. Appelons-la "TMyCollection".La Collection doit
bonjour... et juste après FormCreate ? [ par akkroch ]
Salut les Delphistes,Juste après formcreate, dans lequel on donne la définition de la fiche, quelle est la meilleure procédure pour ecrire automatique
numéro de série de USB flash mémoire [ par med1112 ]
salut à tous,y a t il un moyen pour obtenir le numéro de série de USB flash mémoire, j'utilise Delphi7.merci
Livres en rapport
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|