11.02.2009, 10:30
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.
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.