LabVIEWForum.de - VI mit steigendem Speicherbedarf

LabVIEWForum.de

Normale Version: VI mit steigendem Speicherbedarf
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich bin inzwischen am verzweifeln, da ich schon seit ein paar Tagen an diesem Problem sitze. Ich hab ein etwas komplexeres VI gebastelt (mein erstes Programm), welches immer mehr Arbeitsspeicher in Anspruch nimmt. Dies führt nach einiger Zeit dazu, dass das Programm abstürzt.

Am Besten sieht man dies, wenn man den Burst Modus auswählt und hiernach die Anzahl der Bursts auf z.B. 4000 stellt und auf Start klickt. Im Task-Manager von Windows steigt der Bedarf immer weiter an.

Dies geschieht auch, wenn man nicht auf Start klickt. Nur dauert es dann etwas länger.

Am Controller.vi liegt es nicht, das habe ich schon getestet indem ich ein leeres VI eingebunden habe.

Eventuell weiß ja jemand von Euch etwas.

Vielen Dank!

LabVIEW Version ist 8.6 [attachment=21258]
Könnte es sein, dass die Melder damit etwas zu tun haben?
Sehr gut möglich, vergleich mal hier:
http://www.LabVIEWforum.de/index.php?sho...=14095&hl=

Gruß, Jens
Hallo,

den Thread habe ich schon gelesen, jedoch weiß ich nicht genau, wo ich da bei mir ansetzen sollte. Vielleicht fällt ja einem beim drüberschauen direkt ein "Anfängerfehler" ins Auge.

Danke und Gruß
freezer
' schrieb:jedoch weiß ich nicht genau, wo ich da bei mir ansetzen sollte.
Na, zumindest schon mal hier: Überall, wo ein "Melder/Queue anfordern" steht gehört auch ein "Melder/Queue freigeben" hin. Alles, was erzeugt wird, muss auch wieder gelöscht werden. Das gilt natürlich auch für Melder/Queue.

Außerdem:
In Burst.VI hast du eine While-Schleife, in der du mit jedem Schleifendurchgang diverse Tasks erzeugst, bearbeitest und wieder löscht. Das Erzeugen und Löschen muss man aber nur ein einziges Mal machen. Außerhalb der Schleife. Das würde reichen. Ob das ständige Erstellen/Löschen Einfluß auf den Speicherbedarf hat, weiß ich jetzt nicht. Auf jeden Fall es es außerst Ineffezient.
Hallo,
schau mal in den unteren beiden While-Schleifen des "US control.vi", da gibt es ein SettingsSubvi jeweils in beiden
While-Schleifen. Wenn Du dieses öffnest eine Probe am Queue Refnum Out legst siehst Du das
ständig neue Queue Referenzen erzeugt werden.

Gruß
Ralf
Hallo,

vielen Dank soweit.

@Rasta
Also im Controller.vi habe ich die beiden SubVIs nun außerhalb der Schleife angesiedelt. Hierdurch werden sie nur einmal aufgerufen. Wie legt man denn eine "Probe" an?

@IchSelbst
Ich weiß nicht genau, wie ich das terminieren vornehmen soll. Hast Du eventuell hierzu ein Beispiel?
Den Task habe ich nun außerhalb der Schleife erstellt, jedoch hat dies keinen Einfluss auf den Speicher.

Gruß
freezer
' schrieb:Wie legt man denn eine "Probe" an?
Linksklick auf Leitung, mit Rechtsklick Kontextmenü öffnen. Dort "Sonde" (oder auf Englich wohl "Probe") anklicken.

Zitat:Ich weiß nicht genau, wie ich das terminieren vornehmen soll. Hast Du eventuell hierzu ein Beispiel?
Beispiel nicht.
Aber: In der Palette, in der du auch das Element "Melder anfordern" gefunden hast, gibt es diverse andere Melder-spezifische Elemente. Eines davon ist "Melder freigeben" (oder so ähnlich). Das setzt du einfach nach dem letzten Element hin, das was mit dem Melder macht. Und vergiss die Verbindung mit der Melder-Referenz (das ist die grünliche Leitung) nicht.
So wie es aussieht waren es wirklich die Melder! Vielen Dank für die Hilfe!
Referenz-URLs