Performates lesen von Objekten aus Dateien

  • Themenstarter Themenstarter NurIch
  • Beginndatum Beginndatum
N

NurIch

Gast
Hallo,

ich stehe vor dem Problem, möglichst schnell Daten von der Festplatte einlesen zu müssen. Dabei handelt es sich um eine Liste (mit unterschiedlich großen Elementen). Bis jetzt nutze ich zum lesen einfach den
Java:
ObjectInputStream
, um mein Modell einzulesen. Mit der performance bin ich jedoch nicht so ganz zufrieden: Das einlesen (von ca 13MB) dauert ca. 8.5s. Das kommt mir sehr lange vor.

Welche möglichkeiten gibt es, das zu optimieren? Mangels Ideen habe ich noch nicht so viel rumprobiert. Das einzige brauchbare, was ich gefunden habe, ist die Datei mittels GZip zu packen und dann mit dem
Java:
GZIPInputStream
zu lesen: Die Datei verkleinert sich dabei auf ca 3.5mb, das lesen verschnellert sich dabei um etwas mehr als eine Sekunde.

Hat jemand ein paar gute Ideen, wie man das weiter optimieren kann? Die art und weise des schreibens ist mir dabei egal (auch die dafür notwendige Zeit) - mir kommt es nur auf die Lesegeschwindigkeit an.

Würde mich über jede hilfe freuen.

Schönes Wochenende euch allen,

NurIch
 
Die schlechte Performance liegt sicherlich nicht am lesen von der Festplatte, es seiden du liest jedes Byte einzeln, denn 1.5MB/s pro Sekunde ist viel zu wenig.
Was machst du denn noch mit den Daten, die gelesen werden? Oder sind es gar Millionen kleine Objekte?

Also da müsstest du schon Code posten, damit man irgendetwas erkennen kann.
 
1. Wie ice-breaker sagte, nicht jedes byte einzeln lesen

2. Es gibt noch das Interface Externalizable, wodurch du die Serialisierung selber steuern kannst. Das macht einiges aus,
da die Standard Serialisierung nicht besonders schnell ist
 

Zurück
Oben