H
HaraldM
Gast
Hallo,
ich lade in meiner Software ein Image und habe das Problem, dass Java den Speicher nicht wieder freigibt.
Mein Quelltext sieht wie folgt aus (leicht vereinfacht ;-)
Das JPEG ist ca 3 MB groß und wenn Java es lädt, braucht es dafür rund 60 MB (das ist auch völlig ok so). Das Problem ist nun, dass Java diese 60 MB nicht mehr freigibt obwohl ich im späteren Quelltext nie mehr das ImageIcon Objekt benutze.
System.gc() hilft auch nicht und es ist auch egal was für und wieviel Quelltext ich vor dem Initialisieren des ImageIcons habe. Die obige Zeile beansprucht 60 MB - dauerhaft.
Wißt ihr, wie ich den Speicher wieder freigeben kann?
Viele Grüße
Harald
P.S: Interessant ist in dem Zusammenhang auch, dass wenn ich das Image in einer grafischen Benutzeroberfläche lade und diese Oberfläche von Hand minimiere, der Speicher auf 4 MB abfällt und das obwohl ich das ImageIcon später in einer Methode nochmal verwende (maximiere ich die Gui wieder, bleibt es trotzdem bei den 4 MB)
ich lade in meiner Software ein Image und habe das Problem, dass Java den Speicher nicht wieder freigibt.
Mein Quelltext sieht wie folgt aus (leicht vereinfacht ;-)
Code:
...
ImageIcon ii = new ImageIcon("c:\\image.jpg");
...
Das JPEG ist ca 3 MB groß und wenn Java es lädt, braucht es dafür rund 60 MB (das ist auch völlig ok so). Das Problem ist nun, dass Java diese 60 MB nicht mehr freigibt obwohl ich im späteren Quelltext nie mehr das ImageIcon Objekt benutze.
System.gc() hilft auch nicht und es ist auch egal was für und wieviel Quelltext ich vor dem Initialisieren des ImageIcons habe. Die obige Zeile beansprucht 60 MB - dauerhaft.
Wißt ihr, wie ich den Speicher wieder freigeben kann?
Viele Grüße
Harald
P.S: Interessant ist in dem Zusammenhang auch, dass wenn ich das Image in einer grafischen Benutzeroberfläche lade und diese Oberfläche von Hand minimiere, der Speicher auf 4 MB abfällt und das obwohl ich das ImageIcon später in einer Methode nochmal verwende (maximiere ich die Gui wieder, bleibt es trotzdem bei den 4 MB)