Avatar billede webster Nybegynder
28. maj 2002 - 18:09 Der er 3 kommentarer og
1 løsning

Opsporing af "memoryleak"

Hey

jeg har i et stykke tid arbejdet på at lave en chat server med forskellige funktionaliteter, hvilket også er lykkedes meget godt =) Desværre har serveren en træls tendens til at bruge mere og mere ram jo længere tid den står tændt, hvilket indikerer at der er nogle objekter et sted der ikke bliver fjernet af garbagecollectoren. Jeg har prøvet at lave et thread count på den og det ser faktisk ud til at de threads der servicerer client forbindelserne (jeg har et thread objekt til at servicere hver forbindelse) ikke bliver fjernet. Jeg har i forvejen tænkt mig at skrive klient håndteringsobjekterne om for at forbedre performancen, og tror også det vil fjerne problemet. Jeg er dog stadigt meget irriteret over ikke at kunne finde fejlen så vil høre om nogen her kender nogle metoder til at finde objekter der ikke bliver frigjort, og grunden hertil?
Avatar billede soelvpil Nybegynder
28. maj 2002 - 18:13 #1
under www.jprobe.com kan du downloade et stykke osftware (i en begrænset periode), der kan spore f.eks. tiden der bliver anvendt i forskellige metoder, objekter allokeret o.s.v.

Det må kunne hjælpe dig.
Avatar billede disky Nybegynder
28. maj 2002 - 18:36 #2
garbage collectoren fjerner KUN objekter som ikke længere har en reference der peger på det.
Avatar billede soreno Praktikant
28. maj 2002 - 18:53 #3
hvordan ser din run() ud i den klasse der hånderer klienten ?
Avatar billede webster Nybegynder
04. juni 2002 - 15:07 #4
beklager jeg ikke har fået fulgt op =( blev fanget af eksamsræs. Jeg vil lige tjekke det link.

disky >> Ja, jeg tror da også jeg har fået ryddet ordentligt op i referencerne.

soreno >> en while loop omkring noget kode der læser fra inputstreamen. I while løkkens betingelser er der tjek for bl.a. en variabler der angiver om objektet er releaset så skulle heller ikke være problemet.

Der bliver i øvrigt frigivet hukommelse hver gang man lukker en client, men bare ikke helt så meget som der tages så..
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