30. november 2001 - 09:34Der er
16 kommentarer og 1 løsning
\"Lukkede\" objekter?
Jeg har (igen) et problem med et memory-leak, og jeg er ærligt talt træt af at skulle rende 10.000+ linjer kode igennem en milliard million gange, for at tjekke om jeg nu har lukket hvert enkelt objekt ordentligt ned.
Nogen forslag til hvordan jeg gør det på en NEM måde (udover at gøre det fra starten, når jeg koder - det er lidt svært at lave om på, når koden er skrevet)?
Kan I evt. henvise til utilities som kan vise mig præcis hvilke objekter, der er i brug i hukommelsen lige nu, hvor de er instantieret fra og hvilket navn de er instantieret under (har prøvet HeapInspector fra http://www.geocities.com/moellep/debug/HeapInspector.html, men den kan ikke gøre de sidste to ting).
Beklager. Der findes nok programmer der kan hjælpe lidt. men indtil videre er memoryleaks et problem vi må klare selv ved at tænke os om, og lade være med at lave programmer der lækker.
Nej da. du kan også tænke efter du har skrevet programmet. Det er ofte lidt sværere, men det er muligt. men ellers ja. De bedste programmer får man når man tænker FØR man begynder at programmere :-))
Det er fuldstændigt rigtigt - ganske som man slipper bedst fra ulykker, ved aldrig at blive udsat for dem. Det hjælper bare ikke en meter, når det er sket.
Det har du helt ret i. Og så ønsker man sig en mirakelkur. Et ikon man kan trykke på til at få problemet til at forsvinde. Jeg tvivler på der findes sådan et ikon (uanset hvormange sælgere der står parat til at sælge dig et).
Jeg har aldrig sagt, jeg ville have en mirakkelkur - jeg spurgte efter nogle nemme måder, \"at tjekke om jeg nu har lukket hvert enkelt objekt ordentligt ned\", og nogle \"forslag til hvordan jeg gør det på en NEM måde\", så jeg slipper for \"at skulle rende 10.000+ linjer kode igennem en milliard million gange\".
Følgende kodestump er en hjælp i den retning (postes i næste indlæg fra undertegnede).
Kan desværre kun finde et enkelt ord i øjeblikket; det er fint nok for mig lige nu, men hvordan får jeg den så til at kunne finde sætninger istedet for blot ord?
Jeg så et program på JavaOne i år, som viste en objektgraf under afvikling af en applikation. Der så man alle objekter i spil, helt dynamisk. MEN, jeg kan ikke huske hvem der lavede det :-(( Sorry.
Jeg lægger lige den nuværende kode på min \"endelige\" grep-implementering; den er en god hjælp (for mig) til at finde ud af, om jeg nu også har lukke af for alle komplekse objekter. Nu også med en grafisk brugerflade :-)
Den kommer lige i tre afdelinger (model, controller, view).
/** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents()//GEN-BEGIN:initComponents { SouthPanel = new java.awt.Panel(); FilenavnTextField = new javax.swing.JTextField(); ÅbnButton = new javax.swing.JButton(); SøgetekstTextField = new javax.swing.JTextField(); OutputTextArea = new java.awt.TextArea();
Lidt rodet, og det ville faktisk ikke undre mig, om der var et par memory-leaks eller 10; desuden kan den sikkert optimeres en del - men den virker, og det burde vel ikke være svært at tilføje ny funktionalitet til lortet.
Anyways - det er det mest brugbare svar indtil videre, så jeg lukker programmet her.
Hmm ... burde vist lige have fjernet alle udkommenterede linjer. D\'oh!
Og så staver jeg vist ad lort.
Synes godt om
Ny brugerNybegynder
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.