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!
07.06.2012, 13:15 (Dieser Beitrag wurde zuletzt bearbeitet: 07.06.2012 13:24 von Amaris2003.)
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.#
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
In theory, there is no difference between theory and practice; In practice, there is.
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
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!
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.