Speicherproblem SWT.Image in Nebula-Gallery

paranoized

Mitglied
Hallo,

ich habe ein Speicherproblem beim Laden und Löschen von SWT-Images in der Nebula-Gallery.
Ich erstelle eine Gallery und fülle, bzw. lösche die Bilder in ihr mit folgenden Funktionen:
Java:
public void createGallery(Composite parent)
{
     //in einer Schleife
     GalleryItem item = new GalleryItem(parent, SWT.BORDER);
     Image itemImage = new Image (parent.getDisplay(), path);
     item.setImage(itemImage);
}


public void removeGallery(Composite parent)
{
     temp = parent.getItems();
     for(int k = 0; k < temp.length; k++)						
     {		
          temp[k].getImage().dispose();
          temp[k].dispose();		
     }
}
Laut Task-Manager verschwinden die gelöschten Bilder aber nicht mehr aus dem Speicher. Bei zk. 95% belegtem Arbeitsspeicher wird auf der Festplatte ausgelagert und das Programm gerät ins stocken.
Auch den max. Speicherverbrauch mittels -Xmx zu begrenzen hat nichts gebracht. Das Programm nimmt sich einfach alles, was da ist.
Meine Frage: was mache ich falsch?
 
Zuletzt bearbeitet:
Vielleicht müsstest du überprüfen, was im sichtbaren Bereich liegt... und alles was raus wandert irgendwann "aufräumen" und erst beim wieder anzeigen neu laden.
Wenn du aber die vollen Bilder als Vorlage nimmst, kann das vielleicht auch ungünstig werden... Kannst du da on-the-fly Thumbnails erstellen und diese nur anzeigen?
 
Hallo und danke für die Antwort,

das Problem ist ich lade immer eine bestimmte Anzahl von Bildern und gebe diese auf dem Monitor aus. Wenn ich die nächsten Bilder lade, lösche ich die vorhergehenden mittels Dispose. Jedoch verschwinden diese eben nicht aus dem Speicher.
Ich lade außerdem nur Bilder mit einer Auflösung von zk 100 x 100 Pixel, was Thumbnails ja theoretisch überflüssig macht.
 
Ich verstehe, nein dann kann ich dir leider nicht weiterhelfen... Gibt es vielleicht sonst noch Demo-Code, der dir helfen könnte? Versuche vielleicht mal in den Eclipse-Foren selbst Hilfe zu finden (auch wenn die Reaktionsgeschwindigkeit dort recht variabel ist...).

#edit: hälst du irgendwo noch Referenzen auf deine Bilder? Hast du da mal geschaut? Setze sie vielleicht alle mal auf "null"!
 
Zuletzt bearbeitet:

Zurück
Oben