Serialisierungsproblem bzw. Heap Problem

Status
Nicht offen für weitere Antworten.

volk

Mitglied
Hallo zusammen,

ich habe folgendes Problem mit der Serialisierung unter Java:

Ich füge in einer Hash-Tabelle viele Objekte, die auch Bilder als Byte-Array beinhalten. Später wird die Anzahl der
Objekte in der Hash-Tabelle steigern!

Die Hash-Tabelle wird anschliessend in einer Datei serialisiert. Wenn die Hash-Tabelle zu groß wird, dann
bekomme ich eine Exception, dass die Heap überlaufen ist!

Es gibt natürlich eine Alternativlösung, indem man die Objekte einzeln serialisiert, aber wer will schon ca. 5000 bzw. 10000 serialisierte Dateien auf seiner Platte haben?


Wie kann man trotzdem 10000 oder mehr Objekte in nur einer Datei serialisieren, ohne dass der RAM
beeinflusst wird?


Danke :)
 

dotlens

Top Contributor
hast du schon den speicher erhöht?

Option "-Xmx256m" (max-wert setzen) // bei bedarf auch höher
Option "-Xms64m" (start-wert setzen)
 

volk

Mitglied
Hi!

Die Objekte, die ich in die Hash-Tabelle hinzufüge, kommen aus der Datenbank. Die Datenbank kann den Typ Blob
nicht exportieren, deshalb wollte ich selber die Bilder auf die Platte bringen.
 

Natorion

Bekanntes Mitglied
najo dann würd ich spontan vorschlagen nur den pfad zu den bildern im hashtable zu speichern und nicht die ganzen bilder. wenn den pfad hast, kannst die bilder dann eh immer noch aufmachen. zusätzlich würd ich beim erstellen des hashtables die initial capacity hochstellen ;)
 

Natorion

Bekanntes Mitglied
kein problem, hats funktioniert?

btw wennst noch ein bisschen was herauskitzeln willst und auf den hashtable nur von einem thread aus zugegriffen wird, würd ich gleich ne HashMap verwenden. die ist nicht synchronized .
 

volk

Mitglied
Hi!

Ich habe folgendes vor:

Um zu verhindern, dass die Hashtable zu groß wird, werde ich nur eine bestimmte Anzahl an Daten in die Hashtable hinzufügen und sie anschliessend serialisieren und zu guter Letzt in einer Zip-Datei packen!

Ich muss nur jetzt herausfinden, wie ich unter Java eine Zip-Datei anlegen kann und wie man n-serialisierte Files zum Zip-Archive hinzufügen kann!

Schritte:

1. n-Daten aus der DB lesen und zur Hashtable hinzufügen und anschlissend auf die Platte serialisieren
2. die serialisierte Dateien, die jetzt auf der Platte liegen einzeln lesen und zum Zip-Archive hinzufügen

Wenn ich alle serialisierten Dateien in den Speicher lade und zum Schluß das Zip-Archive anlege, dann bekomme ich wieder Probleme mit der Heap, deshalb lese ich sie einzeln.

Ich glaube man muss unter Java ZipFile verwenden, wenn mann Zip-Dateien anlegen will!
 

volk

Mitglied
Hi!

> Vielleicht ist auch das Problem, dass du "ganze" Objekte in deiner HashTable speicherst.
Was du nicht sagst ;-)

Ich darf nicht alle Objekte aus der DB zur Hashtable hinzufügen. Sondern nur häppchenweise und anschliessend serialisieren und auf die Platte weg schreiben.
 

L-ectron-X

Gesperrter Benutzer
Ich habe den Beitrag nicht umsonst wieder entfernt... :roll:
Wenn du schon nicht mehr vorhandene Einträge zitierst, dann doch bitte vollständig... :wink:
 

Natorion

Bekanntes Mitglied
wenn ich das jetzt richtig verstanden habe, schickst du einen request an die DB, welche dir ALLE dateien zurückliefert? das solltest natürlich in häppchen zerlegen, weil die dateien sind dann so oder so schon im speicher ;) die würd ich aber wie gesagt nicht in einem hashtable speichern sondern nur die pfade in einem hashtable/vector/wasHaltGradPasst. ich denk mir das so in pseudocode ausgedrückt (grad zu faul um wieder resultsets usw rauszukramen *G*):

Code:
Vector allFilePaths = new Vector();
while (haeppchenweise == true) { //einfach durchiteriern
    FileList fileList = db.query("DatenbankAbfrage"); // halt häppchenweise holen sprich hier eines
    while(File currentFile = fileList.next) {
        String fileName = currentFile.getAbsolutePath();
        serializeThis(currentFile, savePath); //speichern wir die datei auf unsrem computer
        allFilePaths.add(fileName);
    }
}

//fertig simma

jetzt hast halt alle file pfade in einem Vector dh du kannst auf die dateien extremst fein zugreifen. der Vorteil ist halt, dass der Speicher frei ist, wenn die abfrage fertig ist. vielleicht solltest auch austesten, ob es was performancemäßiges positives bringt, wennst nach ein paar "häppchen" manuell den garbage collector aufrufst ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Serialisierungsproblem Allgemeine Java-Themen 6
P Serialisierungsproblem Allgemeine Java-Themen 2
E Wie Java Heap Space vergrößern? Allgemeine Java-Themen 3
A Heap-Sort Allgemeine Java-Themen 2
L Java OutOfMemoryError Java heap space Allgemeine Java-Themen 3
H Änderung im maximalen heap space unter Windows 7 ?! Allgemeine Java-Themen 5
N Mögliches heap space lokalisieren Allgemeine Java-Themen 11
D Grundsätzliche Fragen zum Heap Space Allgemeine Java-Themen 12
D Datentypen Cache Images Heap Space Error Allgemeine Java-Themen 7
Thallius Wie mache ich eine Java App mit Icon startbar die mehr Heap Speicher braucht? Allgemeine Java-Themen 3
T jstat Heap(Size/Usage) PermGen(Size/Used) vs JVisual VM Allgemeine Java-Themen 2
H Frage wegen Heap-Speicher Allgemeine Java-Themen 2
L java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 10
R Referenzen im Heap anzeigen Allgemeine Java-Themen 3
S Compiler-Fehler Heap space! Allgemeine Java-Themen 2
V Java Heap Size -Xmx1024m reicht nicht! Allgemeine Java-Themen 14
C Method Area, Stack, Heap Allgemeine Java-Themen 7
A Umgebungsvariable Kann Heap Space nicht vergrößern Allgemeine Java-Themen 6
T Objekt 2x deserialisieren, aber nur 1x im Heap haben? Allgemeine Java-Themen 4
M *.jar >>> *.exe und "heap size" Allgemeine Java-Themen 11
E Konfigurieren des Java Heap-Spaces Allgemeine Java-Themen 5
D Java Heap error trotz anpassungen mit -xmx Allgemeine Java-Themen 4
Guybrush Threepwood Heap-Space "überwinden" Allgemeine Java-Themen 2
O Problem mit dem Heap Space (Speicherüberlauf) Allgemeine Java-Themen 12
S Java heap space zu klein? Allgemeine Java-Themen 6
A Heap in Jcreator erhöhen? Allgemeine Java-Themen 5
P Java Heap Size feststellen Allgemeine Java-Themen 6
K Heap-Volllaufen bei ArrayList<Integer> Allgemeine Java-Themen 9
B Java Heap Space Allgemeine Java-Themen 5
byte JVM Maximum Heap (Windows XP Prof. 32bit) Allgemeine Java-Themen 4
A Wie am besten Daten auslagern um heap zu schonen Allgemeine Java-Themen 4
G Probleme mit dem Java heap Allgemeine Java-Themen 14
E Heap und Comparable (warning: [unchecked] unchecked cast) Allgemeine Java-Themen 2
A OutOfMemoryError: Java heap space Allgemeine Java-Themen 11
kb22 CMS mit großen Dateien (heap problem) Allgemeine Java-Themen 3
hdi Heap Sapce Error bei sehr großem String Allgemeine Java-Themen 5
P not enough space for object heap - Trotz mehr RAM? Allgemeine Java-Themen 6
I Java heap space Allgemeine Java-Themen 3
K Erhöhung Java Heap Space in Netbeans 6.5 - funktioniert nicht oder bringt nichts? Allgemeine Java-Themen 1
S Java Heap Dump erstellen Allgemeine Java-Themen 1
T zu Beginn der main: Heap space ermitteln und hochsetzen Allgemeine Java-Themen 11
K OutOfMemoryError: Java heap space troz -Xms1024m Allgemeine Java-Themen 2
O viele Datensätze aus Datenbank - Java Heap Space - Excepion Allgemeine Java-Themen 25
V Java heap space Problem Allgemeine Java-Themen 8
V Wieso Heap Space Problem? Allgemeine Java-Themen 14
Saxony ANT, ProGuard und Java heap space Allgemeine Java-Themen 8
MQue Heap erhöhen Allgemeine Java-Themen 8
V fehlermeldung heap space, endlosschleife??? Allgemeine Java-Themen 4
M Heap Speicher voll bei spezieller Resize Methode Allgemeine Java-Themen 5
P Java Heap Space Allgemeine Java-Themen 11
P Dump von JavaWS Heap Allgemeine Java-Themen 4
P Java heap Allgemeine Java-Themen 5
F OutOfMemoryError: Java heap space - Speicher verändern Allgemeine Java-Themen 8
P Java Heap Space Exception Allgemeine Java-Themen 30
M JVM Non-Heap läuft voll Allgemeine Java-Themen 4
MQue Java Heap space Probleme Allgemeine Java-Themen 26
T Langsames Laden von Bildern und Heap Exception Allgemeine Java-Themen 7
B Erkennen welche Objekte den Heap verbrauchen? Allgemeine Java-Themen 2
Y PDF Report mit Tomcat Heap Space Problem Allgemeine Java-Themen 9
J java Thread java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 7
G Error: java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 2
G Zum tausendsten Mal Heap Size Allgemeine Java-Themen 5
P out of memory -> heap wächst und wächst Allgemeine Java-Themen 7
S Heap dump Allgemeine Java-Themen 3
F Heap Overflow Allgemeine Java-Themen 9
M Aktuellen heap space ermitteln? Allgemeine Java-Themen 2
G Wird bei RAM-Mangel für Java Heap Space geswappt? Allgemeine Java-Themen 34
B Der Heap Space, ich weiß nicht mehr weiter! Allgemeine Java-Themen 15
H java heap space (outofmemory error) Allgemeine Java-Themen 3
D statisch heap size erhöhen Allgemeine Java-Themen 4
F java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 22
L Häufigkeit der Werte in Datei zählen! Heap Space beschränkt! Allgemeine Java-Themen 31
C Java heap Space, aber wie wegkriegen? Allgemeine Java-Themen 3
P Jave Heap Size und ObjectStreams.ein java bug ? Allgemeine Java-Themen 5
welterde Heap Überlauf Allgemeine Java-Themen 2
F Verfügbaren Heap-Speicher setzen Allgemeine Java-Themen 2
N Speicher Problem bei grossem Heap Allgemeine Java-Themen 15
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben