Liberer les objet en mémoire [Résolu]

Sat83 172 Messages postés mardi 11 novembre 2003Date d'inscription 13 octobre 2008 Dernière intervention - 7 mars 2007 à 15:03 - Dernière réponse : cs_Loda 900 Messages postés vendredi 3 novembre 2000Date d'inscription 30 juillet 2009 Dernière intervention
- 7 mars 2007 à 19:09
Bonjour!

Je viens de réalisé un projet en Delphi, qui fonctionne...

Je voudrait simplement savoir si il y a un moyen de savoir si je libère bien tout les objets en mémoire (MyObjet.Free) ... Etant donné que j'ai l'habitude de Java et son GarbageCollector, il est possible que j'ai oublié de liberer des objet a certains endroits...

Y'a t'il a moyen de le vérifié?

Bien sûr, j'entend sans replongé dans tout le code et verifié ligne par ligne...

Si vous avez une solution pour vérifier ça, se serait sympa!

Merci d'avance!
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_Loda 900 Messages postés vendredi 3 novembre 2000Date d'inscription 30 juillet 2009 Dernière intervention - 7 mars 2007 à 15:19
3
Merci
salut,

en général, en relisant les .create et .destroy t'es bon.

mais pour une vrai vérification, il te faut un outils. Je te recommande FastMM4. (indique les class des leaks, adresses, AV sur object freed, ...) : très bon outils.

Aussi, un moyen très simple (et très limité) consiste à regarde la mémoire alloué à ton applic dans le gestionnaire des tâche. Si tu as des fuites (leak) de mémoire, cela devrait augmenter sans raison. (Ce système ne fonctionne pas pour tout les types d'application.)

en passant, je te rappel que c'est une bonne habitude d'affecter "nil" à tes object après les avoir détruit lors du runtime. (cad pour les object crée et détruit durant l'execution du programme). Cela permet d'avoir tes test "assigned" valable.

Bon débug.

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.

Merci cs_Loda 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de cs_Loda
Meilleure réponse
cs_Loda 900 Messages postés vendredi 3 novembre 2000Date d'inscription 30 juillet 2009 Dernière intervention - 7 mars 2007 à 19:09
3
Merci
ouai, j'ai le même. Je m'en préoccupe pas plus que ça. De mémoire, c'est juste un object global de la lib qui n'est pas détruit lorsque l'application se termine. (si  je me rappel bien).

rien de grave.

A+

Loda

PS: penses a cliquer sur réponse accepté au message qui convient. (pour signaler le problème résolu)
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.

Merci cs_Loda 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de cs_Loda
DeltaFX 459 Messages postés lundi 19 avril 2004Date d'inscription 8 avril 2009 Dernière intervention - 7 mars 2007 à 15:50
0
Merci
Une réponse : MemCheck. C'est une unit a rajouter au projet, ca prend trois fois rien à paramétrer. Apres tu executes ton prog, tu le termines et si t'asdes memory leak, une popup va s'ouvrir. Y a une log aussi evidement.

En plus c'est gratos, et c'est écrit en delphi....

Et tu l'aurais trouvé tout seul comme un grand si t'avais cherché 5 minutes dans le forum.

'spice de javateux :p
Commenter la réponse de DeltaFX
florenth 1105 Messages postés dimanche 1 août 2004Date d'inscription 17 août 2008 Dernière intervention - 7 mars 2007 à 17:56
0
Merci
Et si tu es sous TurboDelphi, il te suffit de rajouter dans le OnCreate :

System.ReportMemoryLeaksOnShutdown := True

et tu seras averti des fuites ^^
Commenter la réponse de florenth
Sat83 172 Messages postés mardi 11 novembre 2003Date d'inscription 13 octobre 2008 Dernière intervention - 7 mars 2007 à 17:58
0
Merci
@

Loda:




Merci, j'ai tester FastMM4 et en effet c'est plutot sympa pour voir si y'a des "fuites" de mémoire! Ca m'a permis de corrigé quelques oublis de "Destroy"...

Par contre j'ai vu que quoi qu'il arrive (j'ai tester avec une application par defaut),
il y a toujours ses 3 élements:

20bytes TObjectList x3
26bytes TWinHelpViewer x1
53bytes THelpManager x1

Est ce que c'est grave? et d'où cela vient t'il?

Merci en tout cas pour ta reponse!
Commenter la réponse de Sat83

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.