Öffnen einer 250MB text-Datei - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO) +---- Thema: Öffnen einer 250MB text-Datei (/Thread-Oeffnen-einer-250MB-text-Datei) Seiten: 1 2 |
Öffnen einer 250MB text-Datei - Lucki - 06.10.2009 10:32 Es geht doch hier nicht darum, die Auswertung in maximal kurzer Zeit zu machen, sonder es geht ums Überleben, also die Machbarkeit überhaupt. Und da bietet sich doch das an: Es sind 100*100 Raumpunkts zu berechenen. Das könnte einzeln geschehen. Die Datei wird nie als Ganzes gelesen, sondern bei der Berechnung jedes Raumpunktes werden nur genau die Informationen aus der Datei herausgelesen, die für dessen Berechnung gebraucht werden. Das erfordert allerdings eine virtuose Handhabung des Dateizeigers, und selbstverständlich sollte man aus Zeitgründen als erstes die Textdatei in ein Binärformat konvertieren. (Diese Konvertierung kann man ebenfalls so pogrammieren, das dabei nicht die ganze Textdatei und die gesamte neue Binärdatei im Memory ist). Öffnen einer 250MB text-Datei - GerdW - 06.10.2009 10:34 Hallo differtd, also 128*100*100*8 * 8 byte/Wert = ~80MB. Das sollte bei deiner 3GB-Maschine gut zu handhaben sein. Du musst drauf achten, keine unnötigen Datenkopien anzulegen. Dazu gehört auch das Anzeigen des (ganzen?!) Strings, da jeder Indicator seine eigene Datenkopie anlegt! Wenn die Zahlen nur mit 6 Stellen gespeichert werden, reicht auch das SGL-Format zum Weiterverarbeiten aus. Musst dann aber beachten, das etliche mathematische Funktionen nur auf DBL-Werte ausgelegt sind und dort wieder eine Typwandlung vorgenommen wird... (Gemeint sind Funktionen aus den Paletten mit den "komplizierteren" Sachen wie Probability&Statistics.) Öffnen einer 250MB text-Datei - jg - 06.10.2009 10:48 @differtd: Da es langsam in den ganzen Vorschlägen unterzugehen scheint, schon mal meinen Vorschlag nachprogrammiert? http://www.LabVIEWforum.de/index.php?s=&am...ost&p=82336 Ansonsten, stimme GerdW zu, selbst wenn du alle 14 Zahlen pro Raumpunkt (?) brauchst, lande ich bei DBL bei 143 MB, das ist machbar. Wichtig hierbei ist eine geschickte Speicherverwaltung, also nicht den gesamten String einlesen (s.o.), sondern zeilen- oder blockweise, und - ganz wichtig - am besten dein Zahlen-Array, in das du die Daten schiebst, in der korrekten Größe vorinitialisieren. Dann mit Replace-Array-Subset arbeiten (s.o.)! Build-Array Operationen nach Möglichkeit bei diesen Datenmengen vermeiden. Gruß, Jens Öffnen einer 250MB text-Datei - Lucki - 06.10.2009 13:41 Habe mal ein Vi erstellt, in dem gezeigt wird, wie man, ausgehend von den Daten im Binärformat, auf jedes einzelne Element, oder auch auf eine einzelne Zeile oder einen gewissen Datenbereich, zugreifen kann, genau so als wären die Daten im Memory. Man kann also alle Berechnungen, Auswertungen, Darstellungen usw. machen, ohne dass sich jemals mehr als wenige Elemente der grossen Datei im Memory befinden. Nach meiner Meinung dürfte sich das Thema damit erledigt haben. Aber eine Frage habe ich selbst: Ja selbst, wenn wie hier vermutet, die Memoryausstattung des benutzten PCs nicht sehr üppig ist, dann gibt es doch unter Windows immer noch die Auslagerungsdatei. Normalerweise führt der hohe Soeicherbedarf einer Anwendung doch nur dazu, daß die HD anfängt wild zu rödeln und alles langsam wird, es ist aber nicht so, daß es überhaupt nicht mehr funktioniert. Warum ist das hier anders? [attachment=21587] [attachment=21588] |