Avatar billede mortennobel Nybegynder
26. september 2004 - 15:32 Der er 8 kommentarer og
1 løsning

Hukommelsesforbrug i Windows

Jeg sidder og er ved at lave en ret krævende web applikation i Java, som konvertere en masse billeder (typisk med størrelsen 2-3 mb/stk).

Når jeg følger processen i Windows Jobliste, kan jeg se at programmet når op på 150-200 mb, hvorefter java laver garbage collection, og derefter fylder 20-30 mb. Alt dette er ganske fint og acceptabelt, men hvis jeg følger sidefilforbrud er denne kun stigende, og ser først ud til at falde, når jeg afslutter programmet (hvilket er lidt uhensigsmæssigt, da det er en web-applikation).

Er dette en svaghed i Java eller i Windows? Hvad skyldes problemet ? Og hvilke muligheder findes der for løsninger / workarounds?

Mvh. Morten

Ps. Jeg syntes at jeg har set noget lign. på windows før, så min mistanke er at det er et windows problem. Derfor stiller jeg spørgsmålet er og ikke i Programmeringssprog -> Java
Avatar billede serverservice Praktikant
26. september 2004 - 15:43 #1
Det er fordi din sidefil ikke er defineret rigtigt- tag egenskaber på "my com." advanced - ydelse - definer- her definerer du sidefilen:
Indstil aktuel str. og max til ca. 1,5 x ramstr.
Avatar billede jpvj Nybegynder
26. september 2004 - 15:43 #2
Du kan gemmentvinge en gc. Har ikke kodet java længe, men sidst hed det

System.gc()

Jeg brugte det også i forb. med noget billedbehandling, hvor Java først frigav hukommelsen når der var ledig processor tid. Vi valgte så at gennemtvinge en gc hvor hvert billede vi havde behandlet...

/JP
Avatar billede serverservice Praktikant
26. september 2004 - 15:44 #3
Avatar billede mortennobel Nybegynder
26. september 2004 - 16:00 #4
dannyboyd: Jeg tror ikke at det skyldes mine sidefil indstillinger. Jeg har en brugerdefineret fil på mellem 384 og 4096.

jpvj: Det hedder stadig System.gc(), men det løser ikke mit problem. I øjeblikket stiger sidefilforbrud fra 500 mb til lidt over 1 gb, mens webserveren (Tomcat5.0) kun bruger ca. 100 mb.

Det som undre mig er hvorfor windows har en pagefil, hvor størstedelen ikke er brugt?
Avatar billede serverservice Praktikant
26. september 2004 - 16:06 #5
ja du skal sætte dit minimum højere op som sagt - gerne 1,5 x ramstr.
Avatar billede mortennobel Nybegynder
26. september 2004 - 16:20 #6
Jeg tror måske at jeg har fundet ud af lidt mere selv; Webserveren (Tomcat) processen har en WM-størrelse på 750 mb (!), men er det ikke windows, som styrer WM og dermed også deallokere størrelsen?
Avatar billede mortennobel Nybegynder
26. september 2004 - 16:47 #7
dannyboyd: Det har jeg nu prøvet, men det løser nu ikke mit problem med at sidefilforbrud er lidt over 1 gb, når billederne er blevet behandlet.
Avatar billede mortennobel Nybegynder
27. september 2004 - 22:14 #8
Jeg tror jeg har fundet løsningen på mit problem:

Det havde ikke noget med windows xp at gøre, men simpelt hen en lille java ting.

Jeg brugte ImageIO til at scalere billerne, men glemte at kalde dispose på Writer og Reader objekterne, hvilket optog en del memory.

jpvj og dannyboyd giv lige endnu et svar, så får i points. Tak for ideerne :-)
Avatar billede serverservice Praktikant
27. september 2004 - 22:18 #9
ok det havde jeg ikke lige gættet , men tak for feedback på løsnong
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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