Sounds like you are passing a 100MB array to your sub-vi.  As soon as
you do this, you make a copy of the data.  That is, the input variable
is not a reference to the array, it is a copy of the array.  To
understand this more clearly, think about wiring the same array to
four or five different sub-vis, each doing something different with
the data.  In order to have each of the sub-vis work with the original
array data, each one must make a copy of the array.

You can limit the number of copies of the array by using global
variable (Shh, don't tell anyone that I suggested it.).  You can also
use control references, i.e. if the value is in a control in the
calling vi, you can pass a reference to the control to the sub-vi and
get the array values from a property node.  Also, you can create your
own memory chunk using the "extcode" library memory management
functions and a CIN or a DLL.  NI suggests using a "functional global"
for this purpose.  They are usually right.  After all they wrote the
stuff.

Check out this link to the NI site:
http://zone.ni.com/devzone/conceptd.nsf/webmain/6A56C174EABA7BBD86256E58005D9712?opendocument

Reply via email to