zu viele/große BufferedImage führt zu Java heap space

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich arbeite gerade an einem Bildbetrachter. Dabei lese ich Bilddateien (nur JPGs) via image.io.read() als BufferedImage ein und stecke sie in eine ArrayList. Wenn ich nun mehrere große Bilde laden will bekomme ich immer folgenden Fehler:

Code:
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space

Java geht also der Speicher aus. Ich könnte nun Java manuell mehr Speicher zuweisen aber das kann ich nicht von jedem Nutzer verlangen. Was könnte ich dagegen tun?

Vielen Dank für jede Hilfe.

Gruß
dadio
 

happy_robot

Bekanntes Mitglied
hi,

speichere sie nicht alle gleichzeitig in einer arraylist sondern lade sie nur dann wenn sie betrachtet werden sollen.
wenn du schon sehr viel implementiert hast kannst du das schön und einfach mit einem "proxy" implementieren.
lass alles beim alten und prüfe in der methode die jetzt die bilder lädt ob das bild das geladen werden soll das ist das dargestellt werden soll. wenn ja, lade es, wenn nein, mache nichts (und gebe ein evtl bereits geladenes bild wieder frei). soll ein anderes bild angeschaut werden, lade noch einmal alle nach gleichem prinzip .
wenn du das laden auf objektebene verlagert hast sollte dies problemlos umsetzbar sein.

wenn nicht würde ein codeschnipsel weiterhelfen.

gruß
 
G

Gast

Gast
Hallo Happy Robot,

danke für deinen Tipp... Wird damit mein Programm nicht stark ausgebremst, da Java ständig auf die Festplatte zugreifen muss?

Ich werde es auf jeden Fall mal testen :)

Danke.

Gruß
dadio
 

happy_robot

Bekanntes Mitglied
der zeitaufwand zum laden der bilder ist doch (fast) der gleiche. wenn du alle lädst ist das doch nur die summe der zeiten die du zum einzelnen laden benötigen würdest.
und das laden von ein paar KB sollte kein problem sein. einen spürbaren unterschied wirst du nicht merken.
 
G

Guest

Gast
Schau dir auch java.lang.ref.SoftReference an. Damit kannst du eine Art Cache aufbauen, der bei Bedarf automatisch freigegeben wird.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B viele JPanels auf JLayeredPane -> to SVG? AWT, Swing, JavaFX & SWT 15
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
A JavaFX Sehr viele Exceptions bei Taschenrechner mit JavaFx AWT, Swing, JavaFX & SWT 2
M If für viele TextFields AWT, Swing, JavaFX & SWT 7
kaoZ Swing JMenuBar, Preferences, Properties... und viele andere lustige Dinge (Best Practice) AWT, Swing, JavaFX & SWT 15
K Viele Textfield mit Hilfe eines MousListener leeren - möglich? AWT, Swing, JavaFX & SWT 8
M Swing Erste Schritte mit der GUI, viele Probleme AWT, Swing, JavaFX & SWT 36
propra 2D-Grafik Beliebig viele Objekte auf einer Zeichenfläche zeichnen AWT, Swing, JavaFX & SWT 15
L unbestimmt viele JComboBox und ItemListener dazu erstellen AWT, Swing, JavaFX & SWT 2
P 2D-Grafik Viele Bilder zu einem Video AWT, Swing, JavaFX & SWT 3
Dit_ Wenn viele NebenFenster zum Locationsetzen das HauptFenster brauchen AWT, Swing, JavaFX & SWT 2
P SWT Composite und viele Labels AWT, Swing, JavaFX & SWT 10
D Zu viele repaints() AWT, Swing, JavaFX & SWT 17
R JTable für sehr viele Daten sehr langsam AWT, Swing, JavaFX & SWT 20
G Viele Fehler beim zeichen AWT, Swing, JavaFX & SWT 5
Z zu viele prozesse AWT, Swing, JavaFX & SWT 2
D Wie viele Pixel welches Icon? AWT, Swing, JavaFX & SWT 4
TheJavaKid Lösung für zu Viele JMenuItems. AWT, Swing, JavaFX & SWT 4
T viele Canvas auf einem Panel und das GUI schmiert ab AWT, Swing, JavaFX & SWT 6
Starchild Beliebig viele Knöpfe AWT, Swing, JavaFX & SWT 5
P TreeView automatisch an große von Inhalt anpassen AWT, Swing, JavaFX & SWT 3
H zwei gleich große Panels getrennt durch ein weiteres Panel AWT, Swing, JavaFX & SWT 10
J Swing Große Gui designen/gestalten AWT, Swing, JavaFX & SWT 13
E 2D-Grafik Speicherprobleme große Tiff-Dateien AWT, Swing, JavaFX & SWT 50
J Welche(n) LayoutManager für große Gui? AWT, Swing, JavaFX & SWT 6
M Swing Große GUI - Konzept, Ideen, Vorschläge AWT, Swing, JavaFX & SWT 20
G Große dynamische ContextMenus erzeugen (Eclipse RCP) AWT, Swing, JavaFX & SWT 4
R JPanel sehr große JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
T JTable / RowSorter macht große Probleme AWT, Swing, JavaFX & SWT 2
P SWT Button --> große Probleme!! AWT, Swing, JavaFX & SWT 7
D verschieden große Componenten in einem JPanel? AWT, Swing, JavaFX & SWT 2
C JTree bereitet große Probleme, kann uns bitte jemand helfen! AWT, Swing, JavaFX & SWT 6
J Große Anzahl von Comboboxen in Tabelle darstellen AWT, Swing, JavaFX & SWT 2
H große mengen an jbuttons dynamisch erzeugen? AWT, Swing, JavaFX & SWT 15
I Arbeitsspeicherverbrauch BufferedImage.TYPE_INT_RGB vs. TYPE_3BYTE_BGR AWT, Swing, JavaFX & SWT 6
H BufferedImage zurücksetzen funktioniert nicht AWT, Swing, JavaFX & SWT 12
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
I GEmaltes BufferedImage löschen AWT, Swing, JavaFX & SWT 3
cool_brivk24 BufferedImage einem ClickEvent hinzufügen AWT, Swing, JavaFX & SWT 13
cool_brivk24 AWT BufferedImage wird nicht geladen AWT, Swing, JavaFX & SWT 17
J linken Bildausschnitt eines BufferedImage abschneiden AWT, Swing, JavaFX & SWT 4
Zar von Domarus JFrame zu BufferedImage konvertieren AWT, Swing, JavaFX & SWT 3
S 2D-Grafik User-BufferedImage rotieren im Zentrum und ohne "anpassung" AWT, Swing, JavaFX & SWT 2
C Pixel-Rendering/Animation Performance in BufferedImage AWT, Swing, JavaFX & SWT 1
H Swing BufferedImage zeichnen AWT, Swing, JavaFX & SWT 1
C Swing BufferedImage zeichnen und JLabels setzen. AWT, Swing, JavaFX & SWT 17
G Subimage von BufferedImage speichern AWT, Swing, JavaFX & SWT 4
D JPanel Graphic2D als BufferedImage Speichern AWT, Swing, JavaFX & SWT 5
D BufferedImage -> Feature Extraktion. Unterschiedliche BufferedImage imageTypes problem AWT, Swing, JavaFX & SWT 4
I 2D-Grafik Shape aus BufferedImage "löschen" AWT, Swing, JavaFX & SWT 2
M 2D-Grafik LookupOp Operation auf BufferedImage AWT, Swing, JavaFX & SWT 7
GianaSisters 2D-Grafik BufferedImage.getSubimage - Frage AWT, Swing, JavaFX & SWT 7
P BufferedImage schlechte Qualität beim Abspeichern AWT, Swing, JavaFX & SWT 9
S BufferedImage als schwarz-weiß-Bild AWT, Swing, JavaFX & SWT 3
Luk10 BufferedImage[...].getData() vs BufferedImage.setRGB() AWT, Swing, JavaFX & SWT 2
D Schnelles kopieren von Pixeln in ein BufferedImage AWT, Swing, JavaFX & SWT 25
J Flackern wie mit BufferedImage beheben AWT, Swing, JavaFX & SWT 4
N Swing BufferedImage neu laden AWT, Swing, JavaFX & SWT 10
N 2D-Grafik BufferedImage, Line2D, Swing und die Probleme AWT, Swing, JavaFX & SWT 5
Luk10 BufferedImage auf ein anderes BufferedImage zeichnen AWT, Swing, JavaFX & SWT 6
P BufferedImage auf JPanel AWT, Swing, JavaFX & SWT 11
K 2D-Grafik BufferedImage eingelesen, welches Modell?! AWT, Swing, JavaFX & SWT 2
T BufferedImage bei paintComponent AWT, Swing, JavaFX & SWT 6
C 2D-Grafik BufferedImage laden, Frage zum Code AWT, Swing, JavaFX & SWT 2
0x7F800000 2D-Grafik int[] zu BufferedImage konvertieren AWT, Swing, JavaFX & SWT 27
H 2D-Grafik BufferedImage aus Integer-Array AWT, Swing, JavaFX & SWT 3
Luk10 2D-Grafik BufferedImage sauber rotieren AWT, Swing, JavaFX & SWT 16
P Image mehrfach in ein BufferedImage zeichnen AWT, Swing, JavaFX & SWT 7
A BufferedImage nach dem Speichern immer schwarz AWT, Swing, JavaFX & SWT 8
J Bild aus Datei in BufferedImage laden AWT, Swing, JavaFX & SWT 4
E BufferedImage Alphaknal ein- und ausblenden AWT, Swing, JavaFX & SWT 7
N BufferedImage zeichnen AWT, Swing, JavaFX & SWT 4
D BufferedImage Größe skalieren AWT, Swing, JavaFX & SWT 2
P Swing Vom BufferedImage bei paintComponent nur soviel zeichnen, wie nötig AWT, Swing, JavaFX & SWT 3
B 2D-Grafik BufferedImage Performance AWT, Swing, JavaFX & SWT 3
Y frage zu BufferedImage AWT, Swing, JavaFX & SWT 7
E AWT RenderedImage aus BufferedImage erzeugen, um Bild abzuspeichern? AWT, Swing, JavaFX & SWT 4
S Unterscheiden ob ein Graphics-Objekt von einer JComponent oder einem BufferedImage kommt..? AWT, Swing, JavaFX & SWT 4
A 2D-Grafik BufferedImage wird nicht eingezeichnet AWT, Swing, JavaFX & SWT 3
G 2D-Grafik BufferedImage Hintergrund immer schwarz AWT, Swing, JavaFX & SWT 4
Developer_X Swing Auf ein BufferedImage mit Graphics/Graphics2D zeichnen AWT, Swing, JavaFX & SWT 6
J AWT BufferedImage to 2DArray AWT, Swing, JavaFX & SWT 10
R Bild drehen UND skalieren (Image bzw BufferedImage) AWT, Swing, JavaFX & SWT 5
J JPanel in Bufferedimage AWT, Swing, JavaFX & SWT 3
1 BufferedImage in byte[], dann in String und zurück AWT, Swing, JavaFX & SWT 7
J Swing paintComponent() - repaint() - BufferedImage anzeigen AWT, Swing, JavaFX & SWT 5
C BufferedImage-Fehler? Falsches Bild wir gezeichnet AWT, Swing, JavaFX & SWT 5
B BufferedImage Builder AWT, Swing, JavaFX & SWT 15
F Transparentes BufferedImage über BufferedImage AWT, Swing, JavaFX & SWT 12
F Größe von BufferedImage ändern AWT, Swing, JavaFX & SWT 27
I Swing JComponent als BufferedImage speichern AWT, Swing, JavaFX & SWT 18
Dragonfire Swing Zoom-Vorgang optimieren [BufferedImage] AWT, Swing, JavaFX & SWT 2
2 Memory Leak mit BufferedImage !! AWT, Swing, JavaFX & SWT 15
X BufferedImage maximiert in JFrame anzeigen? AWT, Swing, JavaFX & SWT 2
R JPanel - BufferedImage - zeichnen großer Bilder AWT, Swing, JavaFX & SWT 2
R JTable - TableCellRenderer - BufferedImage AWT, Swing, JavaFX & SWT 9
D BufferedImage und Graphics2D AWT, Swing, JavaFX & SWT 3
R Zeichnen von Zahlen in BufferedImage AWT, Swing, JavaFX & SWT 6
G BufferedImage.getRGB() mit 3 int-Werten vergleichen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben