LabVIEW Idea Exchange

About LabVIEW Idea Exchange

Have a LabVIEW Idea?

  1. Browse by label or search in the LabVIEW Idea Exchange to see if your idea has previously been submitted. If your idea exists be sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click Post New Idea to submit a product idea to the LabVIEW Idea Exchange. Be sure to submit a separate post for each idea.
  3. Watch as the community gives your idea kudos and adds their input.
  4. As NI R&D considers the idea, they will change the idea status.
  5. Give kudos to other ideas that you would like to see in a future version of LabVIEW!
Top Kudoed Authors
cancel
Showing results for 
Search instead for 
Did you mean: 

Add an option to remove items in memory

After deleting items I don't want in the project, or loading plugins in a  plugin architecture, I want to remove them from the LabVIEW memory. This is not possible now, as they go into Dependencies->Items in Memory.

Items in memory.PNG

The only way to do this now is to close and open the project, which over a large Plug-in architecture project is a real pain. 

Ideally, I would like to right click the folder and choose "remove from memory". However, any option that allows this would be good.

 

Thank you!

Danielle

 

"Wisdom comes from experience. Experience is often a result of lack of wisdom.”
― Terry Pratchett
6 Comments
Proven Zealot

The "items in memory" should unload unless they are now dependencies of something in memory. One way this happens is if those items in memory contain classes that are child classes of items in your actual project. We cannot unloade a class once it is loaded unless its ancestor class is also able ot unload. The reason is that the child class instances can be scattered everywhere, in the current operate value of controls, in the last value of uninitialized shift registers, in the final display of probes, etc. Unraveling that usage is non-trivial (it is, so far as I know, an operation only supported OO languages that are garbage collected languages, which have significant performance overhead).

 

I fully understand why you would like to have this feature. Research continues to find more paletable technical tradeoffs than those known today.

 

 

Active Participant

By definition, plug-in classes would be children of items in the actual project Smiley Sad maybe there a way to clear all the memory, .i.e. do the same thing as when closing and opening the project? This would obviously include previous run values, uninitialized shift registers,etc, so perhaps a better term would be "clear all memory" and not only the things that appear in this folder.

"Wisdom comes from experience. Experience is often a result of lack of wisdom.”
― Terry Pratchett
Trusted Enthusiast

Yeah, currently there's no way to unload a class loaded in this fashion.

 

Definitely something which should be on the "to do" list IMHO.

Active Participant

Very annoying when you update VIs from Tortoise/SVN and you need to close/reopen your project...

NI Employee

I'm also running into this for plugin architectures, it would be good to have an Unload/Load option for each class/package. The functionality for this is in LV when there is a conflict, but when there is no conflict you can't unload/load.

Certified LabVIEW Architect
Proven Zealot

PWoodward: the functionality is available when there's a conflict because the classes are not loaded in that case. They're listed in the project, but are not in memory. They can therefore be removed without the need for unload.

 

The class will automatically unload if you have closed all the panels AND if the class is truly unused everywhere. Operate values may be holding the class in memory. The "clear everything everywhere" described by dsavir above would be needed to get an otherwise-unused class to leave memory.