LabVIEWForum.de - Grosse Text File in Array

LabVIEWForum.de

Normale Version: Grosse Text File in Array
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen

Ich habe eine Textdatei(2MB) mit 10000 Zeilen und diese Zeilen fülle ich in Array!
Und jedem element in dem Array hänge ich hinten noch ein r an!
Nun gebe ich dieses Array in acht Sub'VI's! Nun habe ich festgestellt das es extrem(5-10s) lange dauert bis das Array in das Sub'VI übertragen wurde! Ich habe mein Programm gedebugt und gesehen das diese Zeit beim übertragen des Arrays verloren geht! Nun ist die grosse Frage wiso dauert dies so lange und wie macht das LabVIEW überhaupt? Wird achtmal eine Kopie des Arrays im Speicher angelegt oder setzt LabVIEW einen pointer auf das array!?
Ich hoffe ihr versteht was ich mine!
In Deinem Programm gibt es 8 Kopien und ausserdem konfiguriertst Du das Stringarray durch das Löschen der Leerzeilen dauernd um - das macht einen Haufen Arbeit.

Vorschlag: eine Schleife statt 8, und das Zielarray zuerst auf z.B. 12000 Zeilen (also genung gross) mit Nullen konfigurieren und zeilenweise dann in das Array einfüllen. Zum Schluss die unnötigen Zeilen weglöschen.
In meinem Programm ist es so dass ich die Datei(textfile) als erstes bei Programmstart auswähle und nur einmal das File in ein Array stopfe!
Das mit einer while schlaufe habe ich probiert aber es dauert immer noch sehr lange bis die SubVis im loop ausgeführt werden!
Aber die Zeit geht nicht beim File to Array verloren sondern wenn das Array im while Loop in die Sub'vis "übergeben" wird!!

' schrieb:In Deinem Programm gibt es 8 Kopien und ausserdem konfiguriertst Du das Stringarray durch das Löschen der Leerzeilen dauernd um - das macht einen Haufen Arbeit.

Vorschlag: eine Schleife statt 8, und das Zielarray zuerst auf z.B. 12000 Zeilen (also genung gross) mit Nullen konfigurieren und zeilenweise dann in das Array einfüllen. Zum Schluss die unnötigen Zeilen weglöschen.
' schrieb:Nun gebe ich dieses Array in acht Sub'VI's! Nun habe ich festgestellt das es extrem(5-10s) lange dauert bis das Array in das Sub'VI übertragen wurde! Ich habe mein Programm gedebugt und gesehen das diese Zeit beim übertragen des Arrays verloren geht! Nun ist die grosse Frage wiso dauert dies so lange und wie macht das LabVIEW überhaupt? Wird achtmal eine Kopie des Arrays im Speicher angelegt oder setzt LabVIEW einen pointer auf das array!?
Kein Pointer. Alles Kopien.

Von zwei Sachen rate ich ab.

Erstens: Lokale Variablen. Die haben nämlich diverse Nachteile. Wenn die Daten vor den Schleifen einmalig festgelegt werden, reicht es, sie per Datenfluss in die While-Schleifen zu führen.

Zweitens: Keine Wartezeit in der While-Schleife. Da sollte mindestens eine 1ms-Zeit rein.
Referenz-URLs