LabVIEWForum.de
Wieder mal : Speicher voll .... - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Wieder mal : Speicher voll .... (/Thread-Wieder-mal-Speicher-voll)



Wieder mal : Speicher voll .... - Amaris2003 - 07.06.2012 13:15

Hallo community,

obwohl ich mich eigentlich nicht mehr zu den absoluten Greenhorns zählen würde und es zum Thema: "Speicher voll" auch schon eine Menge anderer Threads:
1: http://www.labviewforum.de/Thread-Fehlermeldung-Speicher-voll
2. http://www.labviewforum.de/Thread-Speicher-voll
3. http://www.labviewforum.de/archive/index.php/thread-4222.html
gibt, muss ich nochmal eine dämliche Frage stellen: Muss ich die Kopie, die beim Lesen einer globalen Variablen entsteht, wieder im Speicher freigeben?
Siehe VI im Anhang, läuft da der Speicher voll?... Ich weiss, man soll keine Globalen-Variablen in dieser Form nutzen und in diesem einfachen Beispiel schreit es nach Schieberegister.#


EDIT: Ein Hinweis ist vermutlich FGV


RE: Wieder mal : Speicher voll .... - Soean - 07.06.2012 13:38

Wäre mir nicht bekannt, dass der Speicher manuell wieder freigegeben werden müsste. Aber in deinem Beispiel-VI dürfte die Prozessorlast gegen 100% gehen...(zumindest in einem Kern)


RE: Wieder mal : Speicher voll .... - oenk - 07.06.2012 14:00

Sowas wie in deinem Bild macht man auch nicht.
Man platziert in while-loops immer ein "Wait (xx)ms"
Den Grund kannst du hier finden: LabVIEW-wiki while-loop


RE: Wieder mal : Speicher voll .... - jg - 08.06.2012 09:51

Also dieses Minimal-Beispiel müllt dir den Speicher definitiv nicht voll.
LabVIEW ist ziemlich gut darin, nicht mehr benötigten Speicher wieder frei zu geben. Deshalb gibt es auch (fast) keine Funktionen dafür.

Ansteigender Speicherbedarf hat in der Regel andere Ursachen, wie z.B. Nicht-Schließen von nicht mehr benötigten ActiveX-Referenzen, Speicherlecks in NI-APIs (z.B. in der TDMS-API), usw. usw. usw.

Übrigens, dieses Minimal-Bsp kannst du wunderbar selber testen. Einfach ein richtig großes Array vorbelegen (so dass man es im Task-Manager "sieht") und laufen lassen, dabei dem Speicherverbrauch im Task-Manager beobachten.

Gruß, Jens


RE: Wieder mal : Speicher voll .... - Amaris2003 - 09.06.2012 15:25

Vielen Dank für eure Antworten,
dass in meinen kleinen Beispiel-Vi keine Wartezeit drin ist, war nur ein Flüchtigkeitfehler, die Prozessorlast ist ja auch nicht mein Problem.
Mein Problem konnte ich noch nicht lokalisieren, aber ich vermute, dass es was mit meiner ActiveX-Excel-Protokollierung zu tun hat. Tritt immer erst nach ein paar Tagen auf, dann ist das Excel circa 250MB groß im Speicher, aber die Fehlermeldung kommt vom Labview. Vermutlich tatsächlich eine Referenz noch offen, ich mache mich mal auf die Suche...


RE: Wieder mal : Speicher voll .... - Amaris2003 - 11.06.2012 12:51

Hallo Community,
Kann ein MOD bitte an den Titel "GELÖST" hinzufügen?
Lösung: Nein, der Fehler lag nicht in den Globalen oder Localen Variablen, sondern in meiner ActiveX-Excel-Messwert-Speicherung. Dort schaue ich in einer Schleife nach dem Zeilen-Wert in der ersten Spalte, welcher leer ist, um dann in diese Zeile zu schreiben (siehe Screenshot). Dort war die Referenz des "Range"-Knotens nicht geschlossen worden und schnell kommen da 100 000 offene Referenzen zsutande. Jetzt läuft es. Danke an alle.


RE: Wieder mal : Speicher voll .... - jg - 11.06.2012 16:44

Tja, was habe ich in Beitrag #4 geschrieben?! Nicht geschlossene ActiveX-Refnums. Treffer, versenkt. Hopper

Gruß, Jens