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!
ich verwende einen größeren Cluster der Daten (>20MB) und Parameter enthält. Der Cluster geht in verschiedene SubVi zur Datenverarbeitung. Nach erstmaligem Aufruf eines SubVis steigt der Speicherverbrauch an, sinkt jedoch nicht wieder nachdem das SubVi geschlossen wird. Kann ich ein SubVi nach Abarbeitung vollständig aus dem Speicher entfernen?
Mein Halbwissen zu der eigentlichen Frage behalte ich für mich, aber trotzdem hier ein Tip: Du kannst unter VI-Einstellungen -> Ausführung -> Priorität auf "Unterprogramm" stellen. Dann wird keine Datenkopie erstellt, sondern das subVI wird quasi inline im HauptVI eingebunden.
Falls du das schon kanntest, einfach den Post ignorieren.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Es gibt eine Funktion in LabVIEW die da heißt "Speicherfreigabe anfordern". Leider arbeitet dieses VI genau wie der Name vermuten lässt... es fordert eine Speicherfreigabe an. Wenn es allerdings keine bekommt wird auch nichts freigegeben.
Untersuche doch zuersteinmal deinen Quellcode. Wenn du richtig programmiert hast dürfte kein Speicher alloziert werden, wenn du die Daten an ein SubVI zur weiterverarbeitung übergibst.
Wenn du das SubVI komplett loswerden willst, kannst du es per Open VI Ref, Call by Ref und Referenz schließen, aufrufen. Der Aufruf an sich ist dadurch halt etwas langsamer.