LabVIEWForum.de
Auslesen dauert viel zu lange - 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: Auslesen dauert viel zu lange (/Thread-Auslesen-dauert-viel-zu-lange)



Auslesen dauert viel zu lange - lordxraven - 24.08.2005 13:31

Hallo zusammen

ich lese 5 Sensoren über 24h aus und schreibe alle 40ms daten in ein Logfile. Nur wenn ich das logfile wieder einlesen will dauert das extrem lang, und ich schätze es liegt wohl nur an meinem schlechten source ;-) vielleicht kann mir da ja einer weiterhelfen.

Speichere Logfile:
5 Sensoren werden zum Cluster zusammengefügt, führe das ganze noch mit einem alarmbyte zusammen und speichere es. I steht auf 90.000 das ist umgerechnet fast 1h Logfile.

Lese Logfile:
Ich löse das cluster wieder auf und erstelle für jeden Sensor ein Array.
Die Arrays gebe ich dann aus um mit einem anderen VI die schwellwerte etc festzustellen.

90.000 Punkte lesen dauert so 6 Minuten. d.h. 24h logfile bräuchte zum einlesen so 2 Stunden und 24 Minuten, was unzumutbar wäre.
wenn ich die arrays nicht erstelle und nur das Kurvendiagramm / Stapelplot anzeigen lasse, dauert das ganze nur 3 Sekunden.

also was mach ich falsch?


Auslesen dauert viel zu lange - IchSelbst - 24.08.2005 15:30

Hallo lordxraven

Ich hab' deine Vorlage mal etwas erweitert.

Benutze anstelle von lokalen Variablen lieber Schieberegister.

Aus speicher-management-gründen solltest du bei dieser Größe deiner Arrays nicht die Funktion "Wert hinzufügen" benutzen, sondern "Wert ersetzen". Hierzu musst du an Anfang ein Array erstellen, das bereits die Endgröße hat. In deinem Falle müsstest du also aus der Größe der Datendatei auf die Größe des Array schließen.

Möglicherweise würde auch ein mehrdimensionales Array (anstelle mehrerer eindimensionaler) Vorteile bringen.

Ich würde noch folgendes probieren: Speichere die Daten so ab, dass du sie mit einem einzigen Lesebefehl komplett lesen kannst.


Auslesen dauert viel zu lange - lordxraven - 24.08.2005 16:09

hey danke für die schnelle Antwort, ich hab mir in der Zwischenzeit auch einen anderen Lösungsweg durch den Kopf gehen lassen.

In dem ich Arrays abspeichere dann in ein Kurvendiagramm einlese, danach mit nem Eigenschaftsknoten History Data lesen komplett in ein Array übergebe.

Dauert alles nur wenige sekunden.

Thx nochmal