Avatar billede jespersahner Nybegynder
21. marts 2005 - 09:18 Der er 8 kommentarer og
1 løsning

java.lang.OutOfMemoryError

Jeg har et program, som giver en "java.lang.OutOfMemoryError"-fejl, som jeg ikke umiddelbart forstår. Hvordan finder jeg lettest ud af, hvor problemet er? Kan man debugge størrelsen af de enkelte objekter under gennemløb?
Avatar billede arne_v Ekspert
21. marts 2005 - 09:24 #1
Jeg tror at du enten må køre programmet i debugger eller sætte nogle
System.out.println's ind.

Runtime.getRuntime().freeMemory()
Runtime.getRuntime().totalMemory()

giver nyttig info programmatisk.
Avatar billede soes Nybegynder
21. marts 2005 - 09:24 #2
Har du en løkke som evt. ender med at køre i en uendelighed og optager den plads som JVM har til rådighed?
Avatar billede arne_v Ekspert
21. marts 2005 - 09:25 #3
PS: Du er opmærksom på at en JVM har en (ikke specielt stor) default
    max memory ?  (ændres med f.eks. -Xmx256m)
Avatar billede jespersahner Nybegynder
21. marts 2005 - 09:32 #4
->arne_v: Måske skal jeg lige prøve at skrue lidt på max memory. Men i mit tilfælde er det relativt små løkker osv., dog med en del reflection, så måske der er noget her.
Avatar billede bromer Nybegynder
21. marts 2005 - 09:52 #5
jespersahner: Du bør i overveje om det virkelig er nødvendigt at skrue op for max memory. I længden er det langt bedre at finde eventuelle leaks i koden og så dem fjernet.
Avatar billede arne_v Ekspert
21. marts 2005 - 10:27 #6
-Xmx er primært til hvis man har meget store data (store XML DOM træer,
meget store arrays etc.)
Avatar billede jespersahner Nybegynder
21. marts 2005 - 11:39 #7
Tror mit problem er en HashMap, som jeg benytter til at holde "globale" referencer til objekter dannet af nogle underprogrammer. Det er noget med, at jeg gerne i et underprogram vil kunne "melde" objekter ind, som mit hovedprogram efterfølgende skal kunne arbejde videre på.
Avatar billede jespersahner Nybegynder
21. marts 2005 - 11:53 #8
->arne_v: Smid lige et svar.
Avatar billede arne_v Ekspert
21. marts 2005 - 12:01 #9
ok
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