Avatar billede vandspand Nybegynder
19. august 2005 - 09:20 Der er 6 kommentarer

Fylder maskinen op med tråde og bruger alt RAM

Hej

Jeg sidder og laver noget sjov i java3D hvor jeg modtager nogen filer og derudfra genererer jeg nogen billeder.. Mit problem er at når jeg bare har modtaget tre filer har min maskine startet ca. 300 tråde og benytter en stor del af sidefilsforbruget... De eneste tråde jeg selv har startet er den der undersøger om der er kommet nye filer, en til at styre lidt tid og en til at sørge for at de rigtige billeder bliver taget...

Hvordan kan jeg tømme maskinen for diverse tråde der kører og "rense" systemet igen uden at skulle genstarte mit program, som er en slags server der jo helst skulle køre hele tiden. Jeg er lidt i vildrede for det ender jo med at maskine crasher og så er vi jo lige vidt..

Jeg har prøvet mig med:
System.runFinalization();
System.gc();
hver gang jeg er færdig med en "session". Men det virker ikke til at kunne fungere.

Nogen der har en god ide?
Avatar billede arne_v Ekspert
19. august 2005 - 09:34 #1
du har vel en reference til de tråde du hsra startet så du kan stoppe dem igen ?
Avatar billede vandspand Nybegynder
19. august 2005 - 10:09 #2
ja problemet er så at de to af dem skal jo ikke stoppes.. og den sidste bliver stoppet indtil der kommer en ny fil så bliver den startet igen.. kan det være den der er noget galt med.. skal jeg dræbe den helt og lave en ny hver gang?

Og det er XML filer jeg får ind så jeg ved ikke om sådan en parser er en killer... er den det??
Avatar billede vandspand Nybegynder
19. august 2005 - 12:29 #3
Hey jeg har luret problemt med trådene... men der er stadig et problem med Rammene... Programmet æder dem og det går rimeligt hurtigt..

Er der nogen der her en ide om hvorledes jeg tømmer det meste af det den gemmer i heapen??

Kan det være jeg har "frigjort" et eller andet som Garbage Collectoren springer let og elefant over??

Er det et spørgsmål om at requeste GC nok gange eller hvad er det?? Det driver mig til vandvid...

hjælp
Avatar billede arne_v Ekspert
19. august 2005 - 12:32 #4
som hovedregel bør man *aldrig* selv kalde GC - det kan den godt selv finde ud
Avatar billede arne_v Ekspert
19. august 2005 - 12:33 #5
på en eller anden måde må du gemme en reference til de ting du allokerer
så GC ikke tager dem med

vær meget opmærksom på tråde da Java har det med at gemme referencer til tråde,
så du skal være helt sikker på at du får alt ud der
Avatar billede simonvalter Praktikant
19. august 2005 - 18:22 #6
Få fat i en profiller f.eks jprofiler
http://freshmeat.net/projects/jprofiler/
Det gør det måske lidt nemmere at se hvad der sker.
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