09-14-2010 10:03 AM
I use this code block to initialize a library of NSV. I have found that depite the fact that I am closing
all NSV references I notice that my cpu usage increases when I restart the top level RT app that contains this code block.
If between runs I undeploy and redeply the NSV library then cpu usage returns to nominal. Also if I add another loop that attempts to
close all the NSV references a second time at the end of my app then cpu usage will not increase between runs. This suggests that the first
close reference is not completely correctly even though no error is generated. Has anyone seen anything like this before?
09-14-2010 12:57 PM
@sachsm wrote:
I use this code block to initialize a library of NSV. I have found that depite the fact that I am closing
all NSV references I notice that my cpu usage increases when I restart the top level RT app that contains this code block.
If between runs I undeploy and redeply the NSV library then cpu usage returns to nominal. Also if I add another loop that attempts to
close all the NSV references a second time at the end of my app then cpu usage will not increase between runs. This suggests that the first
close reference is not completely correctly even though no error is generated. Has anyone seen anything like this before?
Yes.
The resources resrved when we open SOMETHING remain reserved by LV even after they are closed. This speeds things up and avoid crashes when trying to access something using a closed ref.
It is only when lV stops that the resuources are released.
Ben
09-14-2010 01:21 PM - edited 09-14-2010 01:23 PM
Ben - I am talking about resources and/or SVE registrations that seem to survive both the reference being closed and the VI terminating.
Also, closing the reference a second time has an effect, what's up with that?
09-14-2010 01:33 PM
Aside from a lame attempt to hide my ignorance ( I never claimed to know everything ) all I can say is it sounds like the library is staying deployed but why the second close makes a difference...
I will of course watch for updates from others that may know more.
Ben
09-14-2010 01:55 PM
Actually NSV library deployment is designed to persist between RT reboots and is something that on RT platforms must, unfortunately, be done manually from the project or reimaging the target.
Opening a reference to a deployed NSV gives you a tranaction ID to use to interact with the SVE. It appears that something in the registration process can also persist between reboots which can result in subsequent SVE transactions taking up extra cpu bandwidth, until the NSV library is manually undeployed/redeployed or programmatically the references are closed a second time.