Speicherbedarf und persistente Objekte

Status
Nicht offen für weitere Antworten.

Jens81

Gesperrter Benutzer
Hallo zusammen,

ich habe folgendes Problem:

Ich lese Daten (1,5 mio) aus einer Datenbank aus (siehe auch http://www.java-forum.org/datenbank...hickt-groessere-datenmengen-unterbringen.html).

Um mir mehrfaches Laden von der Daten aus der DB zu sparen (wegen der langen Ladezeiten), speichere ich die geladenen Daten in einen Vector und diesen persistent ab:

Java:
OutputStream fos = new FileOutputStream("..."); 
ObjectOutputStream o = new ObjectOutputStream(fos); 
o.writeObject(...);

Das Lesen erfolgt analog:

Java:
InputStream fis = new FileInputStream("..."); 
ObjectInputStream o = new ObjectInputStream(fis); 
Vector werte_kompl = new Vector();
werte_kompl = (Vector) o.readObject();
fis.close();

Lade ich die Daten jedoch nun aus der Datei und nicht aus der DB, braucht die Anwendung einiges mehr an Arbeitsspeicher. Für ein Objekt wäre das noch ok, wenn ich aber mehrere Objekte laden möchte wird es eindeutig zu viel.
Wie kann ich das Problem abfangen? Gibt es bessere / andere / RAM-schonende Möglichkeiten zum speichern und lesen?

Danke und Gruß,
Jens
 
Zuletzt bearbeitet:

musiKk

Top Contributor
Wie stellst Du das fest? Stürzt die JVM ab, wenn Du den Speicher nicht manuell per -Xmx erhöhst? Von welchen Zahlen reden wir (wieviel ist "einiges")?
 

Jens81

Gesperrter Benutzer
Den Speicher habe ich schon auf 1GB hochgesetzt.

Bisher habe ich noch kein Problem, da ich nur 1 oder 2 dieser Objekte laden muss. Auf längere Sicht werden das jedoch mehr werden, daher meine Frage ob es effizientere Möglichkeiten gibt.

Falls ich die Daten aus der DB lade benötigt die Anwendung 380 MB, lade ich sie aus den Objekt, dann verbraucht sie ca. 590MB. Die Angaben habe ich dem Windows TaskManager entnommen.

Ich dachte, dass es vielleicht auch eine Möglichkeit gibt, die Daten weniger komprimiert zu speichern (falls sie das überhaupt sind) und beim laden dann vielleicht weniger Speicher zu verbrauchen. Also quasi Plattenplatz gegen RAM tauschen.
 

musiKk

Top Contributor
Also der Angabe des Betriebssystems würde ich nur wenig Glauben schenken. Die JVM hat ja ein Maximum an Speicher, den sie verbrauchen darf. Reicht der aktuelle Speicher nicht aus und ist dieses Maximum noch nicht erreicht, fordert sie beim Betriebssystem mehr an. Ich denke aber nicht, dass sie sofort den RAM wieder abgibt, wenn wieder weniger Speicher gebraucht wird -- falls das überhaupt mal geschieht. Das wäre jedenfalls nicht sonderlich effizient.

Du kannst ja mal mit VisualVM schauen, wieviel Speicher in der JVM tatsächlich verbraucht wird.

Davon abgesehen kenne ich mich mit reiner Serialisierung nicht so super aus, aber ich glaube nicht, dass die Daten standardmäßig komprimiert werden (das könnte man aber sehr einfach durch Dazwischenschalten eines ZipOutputStreams erreichen). So oder so sollte sich das aber nicht sehr auf den letztendlichen Speicherverbrauch der JVM auswirken. Die endgültigen Objekte sollten in beiden Fällen gleich viel Speicher benötigen und die Infrastruktur zur Deserialisierung braucht sicher keine 200m.
 

velaluka

Aktives Mitglied
Hallo Jens,
vielleicht solltes du mal einen Blick in diesen Cache werfen. Dort sind deine Probleme schon ziemlich professionel :rtfm: angegangen worden....
Oder eventuell mal nachforschen ob dir eine (eigene) Proxy Implementierung besser hilft.
Ciao velaluka
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Abhängigkeit zwischen Rechenzeit und Speicherbedarf in einen Algorithmus Allgemeine Java-Themen 7
M problem mit speicherbedarf von arrays Allgemeine Java-Themen 14
S Speicherbedarf: Map oder halbleeres Array Allgemeine Java-Themen 5
K Genauer Speicherbedarf für ein Objekt ? Allgemeine Java-Themen 7
X Persistente Speicherung Allgemeine Java-Themen 14
schegga_B javax.crypto - Cipher Objekte - Sevice Provider matching? Allgemeine Java-Themen 1
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
Avalon Data Transfer Objekte aus Datenbank erstellen Allgemeine Java-Themen 8
G Objekte mit Strings Aufrufen Allgemeine Java-Themen 8
H Objekte speichern und laden Allgemeine Java-Themen 10
H Objekte speichern und laden Allgemeine Java-Themen 1
MiMa Referenz auf Objekte und deren Inhalte Allgemeine Java-Themen 12
W Objekte reproduzieren Allgemeine Java-Themen 2
W Objekte per Reflexion instanziieren Allgemeine Java-Themen 7
W Unittest - Objekte simulieren Allgemeine Java-Themen 7
T OOP Objekte mit Erweiterung Initialisieren Allgemeine Java-Themen 6
O Erste Schritte Objekte als Datenelemente Allgemeine Java-Themen 14
J Equals Mock Objekte Allgemeine Java-Themen 5
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
N Bei Mouse Events nicht mehrere Objekte erstellen Allgemeine Java-Themen 13
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
J Java Objekte = null, Garbagecollector Allgemeine Java-Themen 12
F Listen - Mehrere Objekte Allgemeine Java-Themen 1
J Verständnis Frage zur Instanz, Objekte, Instanzierung, Referenz Allgemeine Java-Themen 14
F Objekte erzeugen Allgemeine Java-Themen 1
E Threads ThreadPoolExecutor remove mit callable Objekte Allgemeine Java-Themen 3
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
E OOP Objekte und Methoden Allgemeine Java-Themen 1
@SupressWarnings() Umgebungsvariable Objekte "gekoppelt" Allgemeine Java-Themen 6
S Algorithmus um Objekte auf einer Flaeche mit gleichem Abstand anzuordnen..? Allgemeine Java-Themen 20
C Objekte in Array List speichern? Allgemeine Java-Themen 1
OnDemand Objekte speichern Allgemeine Java-Themen 8
B Objekte anhand von Properties file Allgemeine Java-Themen 41
U Tiefe Objekte schreiben Allgemeine Java-Themen 1
R Abstrakte Basisklasse und instanzierte Objekte der abgeleiteten Klasse als Basisklasse übergeben Allgemeine Java-Themen 2
E 3D Objekte in 2D Bild finden Allgemeine Java-Themen 5
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
F FileOutput/Input Objekte Allgemeine Java-Themen 6
OnDemand Objekte serialisieren Allgemeine Java-Themen 3
J unterschiedliche Objekte, selbe getter und setter Allgemeine Java-Themen 15
L Lib gesucht: Java-Objekte mit JSON Allgemeine Java-Themen 2
U Set erklären dass objekte gleich sind Allgemeine Java-Themen 12
E Best Practice Verdammt große Objekte Allgemeine Java-Themen 10
B Mehrere Objekte verschlüsselt serialisieren Allgemeine Java-Themen 6
G Liste anzahl der gleichen Objekte Allgemeine Java-Themen 6
N Objekte an eine andere Applikation übergeben Allgemeine Java-Themen 3
N 2 Objekte zu einer Gruppe zusammenfügen Allgemeine Java-Themen 7
M Instanzierte Objekte in XML Dokument speichern Allgemeine Java-Themen 3
B Verschiedene Objekte in Abhängigkeit eines Typs instanziieren. Allgemeine Java-Themen 17
K Input/Output Im Programm instanzierte Objekte Speichern und laden Allgemeine Java-Themen 3
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
H Objekte Serialisiert speichern Allgemeine Java-Themen 10
L MouseListener für viele Objekte erstellen Allgemeine Java-Themen 16
5 Objekte Sortieren lassen Allgemeine Java-Themen 7
N Objekte aus Array Inhalt erzeugen Allgemeine Java-Themen 8
L Input/Output Textdatei in Objekte überführen? Allgemeine Java-Themen 4
R Input/Output Objekte speichern ohne überschreiben Allgemeine Java-Themen 7
A Collections HashMap.containsKey findet keine immutablen Objekte Allgemeine Java-Themen 3
H Threads Thread stirbt aber Objekte in ihm leben weiter?! Allgemeine Java-Themen 9
M Java Objekte in XML mit JAXB Allgemeine Java-Themen 9
C Strings und JSON Objekte so klein wie möglich im Speicher ablegen Allgemeine Java-Themen 5
H COM-Objekte/ AktiveX Objekte Allgemeine Java-Themen 4
C Script für Website mit Objekte Ausblenden Allgemeine Java-Themen 3
M Txt einlesen & Objekte erzeugen Allgemeine Java-Themen 2
X Objekte aus TableModel serialisieren und deserialisieren Allgemeine Java-Themen 4
T ObjectInputStream - Arrayliste, die unbekannte Objekte enthält Allgemeine Java-Themen 9
B class dateien "einlesen" und objekte erzeugen Allgemeine Java-Themen 6
D Grafische Objekte zeichnen Allgemeine Java-Themen 4
A Wie zur Laufzeit auf Objekte zugreifen Allgemeine Java-Themen 7
F Referenzen auf Objekte Allgemeine Java-Themen 5
H Eclipse und Objekte Allgemeine Java-Themen 6
S Objekte die Objekte enthalten: Keine Vererbung Allgemeine Java-Themen 4
E Objekte in einer Liste suchen. Allgemeine Java-Themen 4
I Über eine Liste iterieren und Objekte löschen. Wie löst man das sauber? Allgemeine Java-Themen 5
I Pattern zum Erweitern existierender Objekte Allgemeine Java-Themen 4
N Dynamische Objekte / DB Allgemeine Java-Themen 5
J Objekte binär speichern Allgemeine Java-Themen 10
TiME-SPLiNTER Unbekannte Anzahl serialisierter Objekte lesen Allgemeine Java-Themen 2
V Objekte in Kategorien einteilen. Allgemeine Java-Themen 6
M 3D Objekte mit einer Linie Verbinden Allgemeine Java-Themen 3
F Wie zur Laufzeit ganz neue Objekte erzeugen? Allgemeine Java-Themen 5
A Dummy-Objekte für Webgui erzeugen Allgemeine Java-Themen 12
W Objekte speichern mit JFileChooser Allgemeine Java-Themen 8
D befehl auf mehrere objekte anwenden Allgemeine Java-Themen 7
L Objekte in Liste packen Allgemeine Java-Themen 2
S XML in Objekte wandeln. Euer Rat? Allgemeine Java-Themen 12
G Objekte serialisieren Allgemeine Java-Themen 2
L Parameter-Objekte verändern oder nicht? Allgemeine Java-Themen 6
D Objekte nur unter bestimmten Voraussetzungen erzeugen Allgemeine Java-Themen 4
S Objekte mit Arrays Allgemeine Java-Themen 9
F Objekte oder besser ID in Listen speichern? Allgemeine Java-Themen 2
S erzeugte objekte zählen Allgemeine Java-Themen 3
U auf Objekte mit variablem Namen zugreifen Allgemeine Java-Themen 4
Airwolf89 dynamischer Zugriff auf Variablen/ Objekte Allgemeine Java-Themen 4
Landei Objekte ohne Konstruktoraufruf erzeugen Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben