Avatar billede x4all_dk Nybegynder
13. juni 2005 - 13:14 Der er 5 kommentarer og
1 løsning

Memory leak

Fjerne memory leaks...

Hvis jeg har et grid som i hvert punkt har et objekt,
er det så nok at kalde grid.free eller skal jeg også kalde
free på samtlige grid-punkter (grid.point.free).

Umiddelbart syntes jeg at garbage-collectoren selv burde
rydde op, men jeg syntes ikke at hukommelsen ser ud til
at krympe efter kald af Grid.free;

Nogen som har et link til en god artikel om mem-leaks i Delphi (7)?
Avatar billede martinlind Nybegynder
13. juni 2005 - 18:29 #1
hvis din grid ikke er "owner" til objecterne ryder den dem ikke op, så skal du selv, hvilken grid er det, er der dig eller gridet der har createt dine objects ?
Avatar billede hrc Mester
15. juni 2005 - 11:44 #2
Det er ikke nok at kalde grid.free. Du skal alle punkterne igennem for at fjerne objekterne. Det er rigtigt at hvis dit grid har en owner (enten fordi den er placeret på en form eller dynamisk oprettet via TGrid.Create(self)), så sørger den bagvedliggende logik for at frigive den når formen nedlægges.

Du skriver "garbage collector". Sådan en har D7 heldigvis ikke. Det er først når du bevæger dig over i noget Delphi .NET, at der er en skraldespandssamler - og her er der stadig objekter som du selv må sørge for at frigive => Kaos hersker.

Hvad angår links til leaks: Prøv at google: +delphi +"memory leak". Der burde være noget brugbart. Det hedgangne TurboPower havde et program man kunne bruge på sit eget program. Derefter ville den guide dig hen til de steder hvor der måtte være leaks. Svært at bruge, men det virkede. Kender ikke alternativer i dag.

G.C. resulterer i dårlige programmører!
Avatar billede tolderlund Nybegynder
16. juni 2005 - 11:56 #3
Du kan prøve MemCheck som er gratis:
http://v.mahon.free.fr/pro/freeware/memcheck/
Med det kan du se om du har memory leaks og den er nem at bruge.
Avatar billede x4all_dk Nybegynder
15. august 2005 - 12:51 #4
hrc -> smid et svar hvis du vil have point.
Avatar billede hrc Mester
16. august 2005 - 19:56 #5
Håber at du er kommet videre...
Avatar billede x4all_dk Nybegynder
26. august 2005 - 13:07 #6
Jeps jeg fandt ud af det. Også at det tager lidt tid inden man kan se at der er mere fri hukommelse!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester