LabVIEWForum.de
Performance Probleme beim lesen einer großen Messdatendatei - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Performance Probleme beim lesen einer großen Messdatendatei (/Thread-Performance-Probleme-beim-lesen-einer-grossen-Messdatendatei)

Seiten: 1 2


Performance Probleme beim lesen einer großen Messdatendatei - Rainito - 10.09.2010 08:59

Hallo LabView-Freunde,

bin dabei mein großen Programm Performancetechnisch zu verbessern und dabei ist mir aufgefallen dass mein "Speicherfresser" das Programm zum Visualisieren von Messprotokollen ist. Hab mir jetzt schon einiges über "Fixing Performance Problems" o.ä. durchgelesen aber komm in meinem Fall nicht drauf was so "schlecht" programmiert wurde.

Anwendungsfall:

Ich schreibe über einen längeren Zeitraum Messwerte in eine TXT File. Dazu werden alle Dateien als String formatiert und in der Datei abgelegt. In einem separaten Programm "Visualisierung und Druck" kann man nun dieses Messprotokoll nochmal einlesen und analysieren. Da die TXT Datei schon ziemlich groß werden kann (bis 15 MB) könnt Ihr euch sicher vorstellen dass einige Messwertreihen dort drin stehen (bis zu 500.000). Da wir auch während der aktuellen Messung das Messprotokoll einsehen wollen müllt es so meinen Speicher zu bis es dann schlussendlich zu einem Speicherüberlauf kommt wenn man den Programm nicht neu startet. Da dies aber mit der Zeit lästig wird wollt ich mein Programm optimieren.

Frage: Meine Forschleifen sind idiziert somit ist hier eine Allocierung gemacht. Ok...im LabView kurs haben Sie mir zu einem anderen Datenformat geraten (TDMS) aber da müsste ich mein komplettes programm umstricken und das will ich NOCH nicht. Bringt das TDMS format überhautp so viel??

Vielleicht seht ihr ja noch einen Weg mein bestehendes Programm speichertechnisch zu optimieren.....ich wär Euch echt Dankbar wenn ihr da mal drüberschauen könntet ob Ihr noch Ideen habt. Gestaret wird das VI "Visualisierung&Druck".

Vielen Dank schon mal!!

[attachment=29322]

Gruß

RainitoLv10


Performance Probleme beim lesen einer großen Messdatendatei - IchSelbst - 10.09.2010 09:39

' schrieb:im LabView kurs haben Sie mir zu einem anderen Datenformat geraten (TDMS)
Top1
Zitat:aber da müsste ich mein komplettes programm umstricken und das will ich NOCH nicht.
Warte noch ein Weilchen ...
Zitat:Bringt das TDMS format überhautp so viel??
Ja.

Strings gehören mit zu den aufwändigsten Datentypen. Binäre Typen, und seien es nur binäre Streams, so wie es TDMS einer ist, sind im Zweifelsfall immer vorzuziehen.


Performance Probleme beim lesen einer großen Messdatendatei - Rainito - 10.09.2010 10:36

Hab jetzt noch eine Automatik implementiert, so dass das Frontpanel nach x Sekunden wieder gelöscht wird.....das bringt mir auch schon was hab ich festgestellt.

Habt Ihr sonst noch Ideen die mich vorübergehend retten könnten??

Parallel werd ich mich wohl doch mal dem TDMS-Format zuwenden und mir die Verwendung und den Aufbau der Datenspeicherung reinziehen!!!

Danke.

Gruß

Rainer


Performance Probleme beim lesen einer großen Messdatendatei - Rainito - 10.09.2010 11:00

So Freunde der TDMS Datei....

...hab gerade eine Messdatei zum Spaß erzeugt mit der gleichen Datenanzahl von meinem messprotokoll.....und siehe da.....die TDMS Datei...sieht nicht schlecht aus....aber hat jetzt anstatt 6MB (Textdatei) plötzlich 14MB...???

bringt mir das Format jetzt dennoch performance steigerung?? und weniger speicherauslastung?? Muss irgendwie meine Ausgelagerte Datei im Windows verkleinern....


Performance Probleme beim lesen einer großen Messdatendatei - IchSelbst - 10.09.2010 11:59

Erste Frage: Welche deiner LV-Versionen ist denn jetzt gültig:lv86wie im Profil steht oderLv10, wie im Posting steht? Was im Profil steht sollte obere Grenze sein! Da ich noch kein LV2010 installiert habe, ich ich deinen geposteten Code nicht ankucken.

' schrieb:Hab jetzt noch eine Automatik implementiert, so dass das Frontpanel nach x Sekunden wieder gelöscht wird.....das bringt mir auch schon was hab ich festgestellt.
Durch das Löschen des Frontpanels entstehen Performance-Vorteile? Das könnte auf überfüllte Graphen oder Tabellen hindeutet. Was ich aber erst sagen könnte, wenn ich den Sourcecode lesen könnte.


Performance Probleme beim lesen einer großen Messdatendatei - Rainito - 10.09.2010 12:24

so...hab mein Profil geändert auf LabView 2010.

Hab meine VI´s nochmal in 8.6 abgespeichert und hier angehängt.

[attachment=29323]


Performance Probleme beim lesen einer großen Messdatendatei - Matze - 10.09.2010 12:31

' schrieb:...hab gerade eine Messdatei zum Spaß erzeugt mit der gleichen Datenanzahl von meinem messprotokoll.....und siehe da.....die TDMS Datei...sieht nicht schlecht aus....aber hat jetzt anstatt 6MB (Textdatei) plötzlich 14MB...???
Das kann ich mir nicht ganz vorstellen.

Sind es wirklich die identischen Messdaten bzw. die Anzahl der Messwerte?

Da TDMS binär speichert, müsste die Datei deutlich kleiner sein und bei mir war sie es bisher auch immer.


Performance Probleme beim lesen einer großen Messdatendatei - jg - 10.09.2010 13:38

' schrieb:Das kann ich mir nicht ganz vorstellen.

Sind es wirklich die identischen Messdaten bzw. die Anzahl der Messwerte?

Da TDMS binär speichert, müsste die Datei deutlich kleiner sein und bei mir war sie es bisher auch immer.
Nein, nicht unbedingt. Das hängt auch sehr davon ab, wie du in eine TDMS-Datei speicherst. Bei jedem Schreibvorgang werden noch zusätzlich Indexe, Blockumbrüche u.ä. geschrieben. Wenn du also jeden Datenpunkt einzeln in eine TDMS-Datei schreibst, erzeugt das einen gewissen Overhead.
Und wenn du bei eine DBL-Zahl im ASCII-Format mit z.B. 3 Nachkommastellen abspeicherst, dann sind das 5-7 Bytes, binär aber 8 Byte!

Gegen den Overhead gibt es Möglichkeiten. z.B. kann man den TDMS-File am Ende defragmentieren (s. das entsprechende VI in der TDMS-Palette). Oder man kann die Anzahl der Schreibzugriffe per "TDMS Set Properties" reduzieren, hierzu am besten die Hilfe zu diesem VI durchlesen.

Gruß, Jens


Performance Probleme beim lesen einer großen Messdatendatei - Matze - 10.09.2010 13:42

' schrieb:Und wenn du bei eine DBL-Zahl im ASCII-Format mit z.B. 3 Nachkommastellen abspeicherst, dann sind das 5-7 Bytes, binär aber 8 Byte!
Ja gut, das sind aber dann unterschiedliche Datenmengen und in der ASCII-Datei fehlen Informationen. Dann ist das natürlich richtig.
Ich ging nun von identischen Daten mit identischer Genauigkeit aus.


Performance Probleme beim lesen einer großen Messdatendatei - Rainito - 10.09.2010 13:45

Also ich hab 150.000 Messwertreihen a 11 Messgrößen in die TDMS geschrieben.....also 11 Spalten! Hab einfach ein Beispiel VI erweitert um den Speicherplatz zu testen.