INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

"Messwerte in Datei schreiben" müllt Arbeitsspeicher zu



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

11.02.2009, 10:30
Beitrag #1

bonestruca Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Feb 2009

8.6
-
de

70176
Deutschland
"Messwerte in Datei schreiben" müllt Arbeitsspeicher zu
Moin,

Ich erfasse Daten, speichere sie zwischen in Arrays und schreibe diese dann, wenn ich genug gesammelt habe, in Dateien.
Jedoch werden nach dem Abspeichern der Daten auf HD (durch "Messwerte in Datei schreiben") die Daten im Arbeitsspeicher nicht gelöscht.

Das ganze schaut so aus: Eine "Hauptschleife", die die DAQmx Datenerfassung startet, eine "Unterschleife", die alle 500ms die Daten vom DAQ abholt und diese in Arrays einfügt. Habe ich genug Daten gesammelt, wird die "Unterschleife" abgebrochen, das VI Messwerte in Datei schreiben wird aufgerufen, Daten werden gespeichert, "Hauptschleife" wird erneut aufgerufen.

Die Auslagerungsdatei zeigt mir während dem "Ansammeln" der Daten Werte zwische 800 MB und 1 GB an, je nachdem wie lange ich ansammle. Wird nun jedoch diese Schleife abgebrochen und das Speicher-VI aufgerufen schnellt die Größe der Auslagerungsdatei auf 1,5 GB hoch und bleibt dort ! Selbst wenn das VI fertig gespeichert hat und meine Hauptschleife wieder aufgerufen wird, bleibt die Auslagerungsdatei bei 1,5GB oben, was den PC natürlich langsamer macht. Stoppe ich mein Programm, bleibt selbst dann die Auslagerungsdatei bei 1,5GB stehen. Erst beim Beenden von Blockdiagramm und Frontpanel wird der Platz wieder freigemacht.

Meine Frage: Wie kann ich während des Ausführens meines VI's den Arbeitsspeicher leeren. Die Hauptschleife besitzt keine Register, keine globalen Variablen, nichts. Kein Bit sollte von einem auf den anderen Schleifendurchgang übernommen werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.02.2009, 11:00
Beitrag #2

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
"Messwerte in Datei schreiben" müllt Arbeitsspeicher zu
Hi,

du hast sehr genau beschrieben, was Du machst, irgendwie fehlt mir aber ein Block der sowas macht wie Deine temporären Arrays löschen... Wenn Du das nicht nach dem Schreiben machst, behält LV die natürlich im Speicher...
Vielleicht ist's ja aber auch so selbstverständlich, dass man das macht, dass Du es nicht erwähnt hast...;)Dann hilft aber denke ich nur ein VI oder so, um mal weiter zu schauen (oder jemand, der mehr Wissen über die Arbeitsspeicherverwaltung von LV hat als ich...Wink

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2009, 11:43
Beitrag #3

bonestruca Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Feb 2009

8.6
-
de

70176
Deutschland
"Messwerte in Datei schreiben" müllt Arbeitsspeicher zu
Der Datenstrang meines "Sammelarrays" läuft in das VI "Messwerte in Datei speichern" und endet dort. Nach dieser Aktion endet der aktuelle Schleifendurchlauf und es beginnt ein neuer. Daten werden nicht mit in den neuen hinübergeschleppt. Keine. Kein Register, Knoten, keine globalen Variablen. Schleifendurchgang zu Ende, neuer beginnt. Wo und wie sollte ich da noch Arrays löschen ?

Ich denke das Problem sind auch nicht die temp. Arrays sondern Das VI Messwerte in Datei speichern. Das baut mir die 1,5GB Auslagerungsdatei, die dann stehen bleibt bis zum Ende aller Tage.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2009, 11:49
Beitrag #4

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
"Messwerte in Datei schreiben" müllt Arbeitsspeicher zu
' schrieb:Ich denke das Problem sind auch nicht die temp. Arrays sondern Das VI Messwerte in Datei speichern. Das baut mir die 1,5GB Auslagerungsdatei, die dann stehen bleibt bis zum Ende aller Tage.

Ich würde sagen...GENAU! Da sieht man mal wieder: ExpressVI's sind der größte Mist! Schmeiß das Ding raus uns speichere "zu Fuß" mit den entsprechenden File IO VI's (z.B. Write Spreadsheet, Write Text File)

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2009, 16:06
Beitrag #5

bonestruca Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Feb 2009

8.6
-
de

70176
Deutschland
"Messwerte in Datei schreiben" müllt Arbeitsspeicher zu
Super, Danke Achim, genau das wars. Habs schnell nachgebaut - Speicher wird jetzt super leergeräumt bei jedem Schleifendurchlauf. Jedoch stehe ich nun vor einem neuen Problem:

Sobald ich eine Matrix mit mehr als (ca.) 21 Millionen Werten in eine Datei schreiben möchte, bekomm ich die Meldung:

"Memory is full" - bezogen auf das "Write to Spreadsheet"-VI

Maximale Dateigröße, erzeugt durch Matrizen, die ich durch "Write to Spreadsheet" in eine Textdatei speichern kann scheint so ca. 130 MB zu sein. Ist das die Regel in LabVIEW und man muss bei größeren Datensätzen splitten und mehrfach speichern oder gibt es auch eine Möglichkeit noch größere Dateien zu erzeugen ?

Ähnliche Frage: Sobald ich eine Matrix mit mehr als 50 Millionen Werten bauen möchte, bekomme ich eine ähnliche Fehlermeldung, dass der Speicher nicht ausreicht. Normallfall ?

Oder hängen beide Probleme mit meinem spärlichen Arbeitsspeicher (1GB) zusammen ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2009, 17:26
Beitrag #6

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
"Messwerte in Datei schreiben" müllt Arbeitsspeicher zu
Ist da was für Dich dabei?

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2009, 18:04
Beitrag #7

bonestruca Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Feb 2009

8.6
-
de

70176
Deutschland
"Messwerte in Datei schreiben" müllt Arbeitsspeicher zu
' schrieb:Ist da was für Dich dabei?

Gruß Markus

Danke, das klärt wieso ich Arrays nur bis zu einer bestimmten Größe bauen kann, leider aber noch nicht, wieso ich nur Dateien bis 130MB speichern kann, auch wenn der Array noch Platz gehabt hätte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2009, 18:15
Beitrag #8

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
"Messwerte in Datei schreiben" müllt Arbeitsspeicher zu
' schrieb:Maximale Dateigröße, erzeugt durch Matrizen, die ich durch "Write to Spreadsheet" in eine Textdatei

"Write to Spreadsheet" rausschmeissen und zeilenweise schreiben - du kannst Daten schreiben bis das OS aufgibt.

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2009, 22:11
Beitrag #9

bonestruca Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Feb 2009

8.6
-
de

70176
Deutschland
"Messwerte in Datei schreiben" müllt Arbeitsspeicher zu
' schrieb:"Write to Spreadsheet" rausschmeissen und zeilenweise schreiben - du kannst Daten schreiben bis das OS aufgibt.

Gottfried

du meinst also pro zeile, also 1 million mal, ein schleifendurchlauf und ne zeile speichern ? eine million schleifendurchläufe ? ich glaub selbst ohne zeilenspeichern in der schleife würde das zu lange dauern. gibts alternativen ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2009, 22:48
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
"Messwerte in Datei schreiben" müllt Arbeitsspeicher zu
' schrieb:du meinst also pro zeile, also 1 million mal, ein schleifendurchlauf und ne zeile speichern ? eine million schleifendurchläufe ? ich glaub selbst ohne zeilenspeichern in der schleife würde das zu lange dauern. gibts alternativen ?
10 Zeilen auf einmal schreiben -> nur noch 100.000 Durchläufe.
100 Zeilen auf einmal schreiben -> nur noch 10.000 Durchläufe.
etc etc.

Das Problem bei Write To Spreadsheet: Wenn du da ein sehr großes Array auf einmal schreiben willst, dann wandelt dieses VI das gesamte Array erst mal in einen Spreadsheet-String! Das braucht Speicher und dauert natürlich.
Also muss ein Kompromiss her.
Probier doch erst mal zeilenweise, vielleicht geht es schneller als du denkst.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datencluster als csv-Datei schreiben / Bessere Lösung ? Hachiko 3 2.511 28.08.2024 16:00
Letzter Beitrag: Kiesch
  Messwerte aus UM232H (USB) jede ms in TDMS Datei schreiben BenBaeumker 19 9.824 23.07.2021 10:55
Letzter Beitrag: GerdW
  OHNE VI: Arbeitsspeicher läuft voll ddrayss 8 6.445 12.10.2019 17:05
Letzter Beitrag: ddrayss
  Messwert in Datei schreiben Version2018 -> Version2012 Tony_D 4 4.183 30.08.2018 11:48
Letzter Beitrag: GerdW
  Nur bestimmte Messwerte in Datei schreiben Olli169 6 5.043 16.08.2017 11:22
Letzter Beitrag: Olli169
  Komplexe Daten in eine Datei schreiben smb 1 3.233 19.12.2016 15:33
Letzter Beitrag: GerdW

Gehe zu: