LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Implicit Property Nodes vs Reference and Generic Nodes

Here are my findings....

 

Using an implicit property node causes memory errors, desipte the memory usage not increasing in the taskmanager.

 

Using the generic node and a reference works OK as you are able to close the reference explicitly.

 

Is this would people would expect to see?

 

I've founds this has caused errors in two totally seperate programs of mine within two days.

Download All
0 Kudos
Message 1 of 9
(4,603 Views)

Hello

 

Do you mean that with the same values the implicit PN would return an error and the generic one + ref would not? I'd be very surprised if it was the case :-o.

I've used both implicit and generic property nodes and method nodes + ref and never noticed any issue with either way.

 

Theses days I'm using refs + implicits nodes much more than implicit.


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Kudos
Message 2 of 9
(4,599 Views)

There is no error message returned from the nodes.

 

Running on a PC the one with the implicit property node would eventually come up with a Virtual Memory Low Error from Windows, where the one with the Gereric property node wouldn't.

0 Kudos
Message 3 of 9
(4,587 Views)

Both

 

 

and

 

 

are functionaly equivelent. Both are using static refs so the "close" is a NOOP.

 

Please share the code (or images of the code) (and tell us what version) so we can help you get this issue logged as a bug or help you figure out what is really affecting your code.

 

Ben

 

 

 

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 4 of 9
(4,578 Views)

Right, I have no idea how LabVIEW deals with references for implicit property nodes under the hood.. Have you made any speed comparison?


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Kudos
Message 5 of 9
(4,576 Views)

Before and After.

 

This example is 2011, though it also appears to be affect those written in 2010 SP1

Download All
Message 6 of 9
(4,574 Views)

Congratulations!

 

I am speachless (well not really).

 

The only devil I can spot is the use those locals. IT would take a hell of an effort to prove it but I suspect the compiler changes introduced with LV 2010 may invalidate my "functional equivelent" statement from above. Locals have a special back-door to get at the data but if the implicit prop nodes are now fighting with the locals, i could imagine the arrays found in the locals may end up being larger due to timing details.

 

Desk top Trace execution Tool kit should help nail the cause.

 

I would be interested if replacing the locals with Action Engines would help.

 

If you are really curious about this I would invite you to share this code with NI so that they can recreate the error and chase down the answer.

 

Please keep us posted if you find anything that explains what you have reported.

 

Ben 

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 7 of 9
(4,565 Views)

I will attempt to run it through the desktop trace over the next few days and also create a very basic program and see if the same problem appears.

 

Can anyone suggest any better toold for monitoring memory usage than task manager or the built in windows performance manager?

0 Kudos
Message 8 of 9
(4,558 Views)

Hi Richard,

 

Try Spotlight On Windows, you can also run this from another PC to monitor a remote system and log data.

 

Kind Regards,

 

Rob 

Applications Engineer
0 Kudos
Message 9 of 9
(4,519 Views)