Jim Kring Posted September 13, 2007 Report Share Posted September 13, 2007 I'm seeing a strange problem with my LabVIEW project. Here's what's going on. I have several classes that were created with the OpenG Reference Object Template. If I have my project open and I load one of these classes into memory (either by opening the LVClass or opening a VI that calls a class member), the LVClass gets added to the Dependencies>>Items in Memory folder. However, when I close the LVClass (or the VI that calls the class members) it does not get removed from the Dependencies>>Items in Memory folder and I have no way of getting rid of it. Worse, if I save the project, close it, and then reopen it, the LVClass still shows up in the Dependencies>>Items in Memory and gets loaded into memory. Has anyone seen anything similar? Quote Link to comment
Aristos Queue Posted September 13, 2007 Report Share Posted September 13, 2007 No such behavior has been reported to me. Haven't ever seen that. Quote Link to comment
Jim Kring Posted September 13, 2007 Author Report Share Posted September 13, 2007 Here is a test project called "TestProject". Note that it depends on the OpenG Class Templates for LabVIEW Object-Oriented Programming being installed using VIPM (but does not requite the Endevo GDS to be installed). Download File:post-17-1189555403.zip Note that it has a Parent class with two child classes Child1 and Child2. If you remove either Parent, Child1, or Child2, they will stay in memory (as seen under the Dependencies>>Items in Memory) until all three classes are removed from the project. Quote Link to comment
Jim Kring Posted October 30, 2007 Author Report Share Posted October 30, 2007 [update: Confirmed by NI R&D, CAR Number 4EPEBUCS] Quote Link to comment
PaulL Posted December 13, 2007 Report Share Posted December 13, 2007 I'm glad I found this topic because I just encountered the same thing. A couple notes: The child classes stayed in memory until I deleted the parent even though I changed their inheritance so they no longer inherited from the parent! Moreover, when I opened the .ctl file for one of the (disinherited) child classes in the Items In Memory folder I was not able to close the .ctl window. Quote Link to comment
Tomi Maila Posted December 13, 2007 Report Share Posted December 13, 2007 It seems I've missed this topic. There is a simple workaround. Simply open the .lvclass file with a text editor and remove the lines in the items in memory section within the lvclass XML file. Next time you open the class, everything works smoothly. Tomi Quote Link to comment
Jim Kring Posted December 13, 2007 Author Report Share Posted December 13, 2007 QUOTE(Tomi Maila @ Dec 12 2007, 11:50 AM) It seems I've missed this topic. There is a simple workaround. Simply open the .lvclass file with a text editor and remove the lines in the items in memory section within the lvclass XML file. Next time you open the class, everything works smoothly. Yes, that works for me too. I mentioned that at the bottom of my original post Cheers, Quote Link to comment
Aristos Queue Posted December 13, 2007 Report Share Posted December 13, 2007 QUOTE(Paul_at_Lowell @ Dec 12 2007, 01:42 PM) A couple notes: The child classes stayed in memory until I deleted the parent even though I changed their inheritance so they no longer inherited from the parent! Moreover, when I opened the .ctl file for one of the (disinherited) child classes in the Items In Memory folder I was not able to close the .ctl window. A class will stay in memory as long as there are any data instances of the class lingering around on VIs that aren't members of the class. That means hiding in the operate data of controls/indicators (controls of type LabVIEW Object or LVVariant are common hiding places), or even just sitting in terminals. The inability to close the .ctl window is a new one. I haven't heard of that before. If you can get it reproducible, please post it to ni.com so it gets investigated and CAR'd. Quote Link to comment
Dan Bookwalter Posted December 13, 2007 Report Share Posted December 13, 2007 QUOTE(Aristos Queue @ Dec 12 2007, 03:26 PM) The inability to close the .ctl window is a new one. I haven't heard of that before. If you can get it reproducible, please post it to ni.com so it gets investigated and CAR'd. I had this same thing happen last week , i will see if i can reproduce it..... Dan Quote Link to comment
gmart Posted December 13, 2007 Report Share Posted December 13, 2007 QUOTE(Aristos Queue @ Dec 12 2007, 02:26 PM) A class will stay in memory as long as there are any data instances of the class lingering around on VIs that aren't members of the class. That means hiding in the operate data of controls/indicators (controls of type LabVIEW Object or LVVariant are common hiding places), or even just sitting in terminals. The inability to close the .ctl window is a new one. I haven't heard of that before. If you can get it reproducible, please post it to ni.com so it gets investigated and CAR'd. Another "hidden" place is the magic clipboard where LabVIEW items go when they are copied. If you copy a class (I think via CTRL+C), the class is copied to the clipboard and will hang around in memory until the app instance is released (I think). Quote Link to comment
Aristos Queue Posted December 13, 2007 Report Share Posted December 13, 2007 QUOTE(gmart @ Dec 12 2007, 03:06 PM) Another "hidden" place is the magic clipboard where LabVIEW items go when they are copied. If you copy a class (I think via CTRL+C), the class is copied to the clipboard and will hang around in memory until the app instance is released (I think). This is no different than if you copy any subVI -- the clipboard will hold the VI in memory. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.