Datei-Parser optimieren
Moin eg!
So etwas ähnliches habe ich vor nicht allzu langer Zeit auch gemacht. Bei handelt es sich aktuell aber im Dateigrößen um die 1-5 GB. Da brauchte ich ca. 8 Minuten um die Datei einmal zu durchlaufen.
Hinsichtlich deines letzten Cases. Du liest dort deine Daten aus dem File und packst sie an den Array. Bei einer Dateigröße von 18 MB ist das sicherlich auch kein Problem, bei mehr wird der Arbeitsspeicher recht schnell stark belastet.
Ist es bei dir notwendig, dass du alle Daten auf einmal benötigst?
Bei mir ist es so, dass in den Dateien Spektren stecken. Dass können schon mal mehr als 100000 sein, darum auch die wahnsinnige Dateigröße nach einer Messung. Da man später nicht alle Spektren auf einmal benötigt, habe ich das erstmalige Einlesen der Datei so gestaltet, dass ich mir nicht alle Spektren aus der Datei heraushole, sondern nur die Angaben wo die Spektren in der Datei stehen und wieviele Bytes dazu gehören. Quasi eine Art Pointer auf die einzelnen Datensegmente. Im weiteren Verlauf kann ich mir dann unter Angabe dieser beiden Parameter jedes Spektren aus der Datei herausholen. Den Vorteil sehe ich daran, dass man den Arbeitsspeicher weniger belastet und man trotzdem jedes Datenpacket eindeutig referenzieren kann. Aber das hängt natürlich davon ab, was im Anschluss mit den Daten erfolgen soll.
Schöne Grüße
Falk
|