Hallo Philipp,
Zitat:Der große Haken: Die .txt Files können bis zu 200 MB (!) groß werden.
Mein Rechner fängt bereits bei bei 100MB-großen Dateien an zu haken, und das ohne die Hauptanwendung! :-(
Und was ist die logische Konsequenz dieser Beobachtung?
Einfach nicht die komplette Datei (auf einmal) einlesen!
Immer nur kleinere Teile davon einlesen…
Einfaches Beispiel:
Momentan liest du die komplette Datei ein und wandelst sie in ein 2D-Array um. Dann löscht du die ersten 3 Zeilen aus dem Array. Beides benötigt (bei deinen großen Dateien) richtig viel Speicher.
Bessere Lösung: lies doch einfach erst die ersten 3 Zeilen aus der Datei und danach mit einem zweiten ReadTextFile die nächsten Zeilen. Schon hast du dir eine resourcenfressende DeleteFromArray-Funktion gespart…
- Als "schwierig" stufe ich hier nicht die eigentliche Dateioperation ein, sondern das nachfolgende Umwandeln von Text nach 2D-DBL-Array: hier wird massiv Speicher belegt und CPU beansprucht. Hier besser mit kleineren Datenblöcken arbeiten.
- Du willst anscheinend auch die komplette Datei darstellen: 2Wochen*7Tage*1440Min*60s*1S/s~=1.2M Samples. Wie willst du >1Mio Samples in einem Graph darstellen, der nur ~1000 Pixel breit ist? Auch hier gilt: soviele Samples darzustellen, frisst einfach nur Resourcen. Daten vor der Darstelleung dezimieren!
- Wieso verwendest du nicht TDMS-Dateien? Die sind für solche Sachen auch sehr gut geeignet?
- Ich finde es auch problematisch, wenn zwei Anwendungen (oder Funktionen in einer Anwendung) parallel auf dieselbe Datei zugreifen wollen…
- Warum willst du diese riesige Datei erneut einlesen, wenn du nur ein paar Parameter (diese "Adjuster") anpassen willst???