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

LabVIEWForum.de

Normale Version: Wieder mal : Speicher voll ....
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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-Fehler...icher-voll
2. http://www.labviewforum.de/Thread-Speicher-voll
3. http://www.labviewforum.de/archive/index...-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
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)
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
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
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...
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.
Tja, was habe ich in Beitrag #4 geschrieben?! Nicht geschlossene ActiveX-Refnums. Treffer, versenkt. Hopper

Gruß, Jens
Referenz-URLs