Hallo,
solange hier noch keiner von den absoluten Profis antwortet geb ich mal meine bescheidene Meinung ab:
Ich denke, dass die Referenzen auf die Queues/Melder sehr wohl im Speicher bleiben. Und zwar solange die Applikationsinstanz "lebt". Also entweder LabVIEW in der IDE oder eben die Exe als solches. (wenn das VI als Exe kompiliert wurde). Das ist ja genau der graus mit den Speicherlecks: Wenn man vergisst die Refs zu schließen und diese aber in einer Schleife immer neu erzeugt werden (aber nie benutzt) dann sammeln sich die Refs eben an und müllen den Speicher zu.
Hier ein kleines getestetes Bsp: ACHTUNG Speicherzumüllung inside!!
- wenn das VI startet wird sehr schnell der Speicher zugemüllt mit unbenutzten und sofort wieder vergessenen Refs auf unbenannte Queues
- Stoppt man die Q-Creation dann geht das Programm in den Wartemodus und man kann z.B. im Taskmanager sehen wie viel Speicher schon hinzugekommen ist.
- Stoppt man die WarteSchleife wird die Q wieder freigegeben, aber eben nur die EINE LETZTE und nicht die Tausenden davor. Deswegen bleibt der Datenmüll (unbenutzte Refs) im Speicher
- Stoppt man das VI (in der IDE) passiert nichts weiter, der Datenmüll bleibt
- NUR wenn man LabVIEW komplett schließt (wenn das VI ausgeführt wurde) oder die Exe schließt (wenn VI als Exe kompiliert wurde), wird der Speicher wieder freigegeben.
Gruß