07-18-2011 08:01 AM
Hi,
We have recently moved from Labview 8 to Labview 2010. We have not modified our any VIs.
But Labview 2010 is taking using very high memory, more than 600 MB (Private Bytes). This results in few crashes as well.
During this analysis we ran UMDH tool to analyse the possiblity of memory leak.
We are seeing larger memory allocation from the following functions/might be posssible function which causes the memory leak:
1. ArrayToTable
2. DBConvertVarToData
3. StatVIRefReserve
4. GetLVVariantTDForDotNet
We are using Indicators which displays larger size of arrays, it appears that these arrays are not cleaned up properly by Labview.
Please help us in resolving this issue.
07-18-2011 09:21 AM
Hi,
you have some debugging tools, like "Show buffer allocation", available in LV! Did you try them?
Did you try to look at the VI properties to find the VI using so much memory?
And yes, ArrayToTable might use a lot of memory...
07-18-2011 10:02 AM
@ghegde wrote:
We are using Indicators which displays larger size of arrays, it appears that these arrays are not cleaned up properly by Labview.
Can you give a more detailed example on what your program does and what it displays?
07-19-2011 10:04 AM
Thanks GerdW.
I don't have any debugging tool which shows the "Buffer allocation"
07-19-2011 10:07 AM
07-19-2011 10:35 AM
Actually we did mass compiliation of Labview 8 files in Labview 2010 IDE. For broken vis, we have modified to fix the issues and saved them in Labview 2010 IDE
In Labview 8, we see around 250MB consumption
yes, We have changed Hardware from Dell 2950 to Dell R710 server
OS from windows 2k3 to window 2008 standard os,
Maximum array size is 2 dimensional size with 50X 1024
we use most of controls & indicators provided by Labview and also some times we customize the provided controls.
Those indicators are used directly , local variables, property nodes, reference variables also
Memory cleanup
07-19-2011 12:48 PM
> Maximum array size is 2 dimensional size with 50X 1024
50x1024 arrays are realtively tiny. How many of those do you have? Are tehy fixed size of does the size change constantly?
> For broken vis, we have modified to fix the issues and saved them in Labview 2010 IDE
What kind of modifications were done to "fix" broken upgrades?
> Those indicators are used directly , local variables, property nodes, reference variables also
What is a "reference variable"? These local variables and property nodes cause additional data copies in memory. Are they really needed? Have you tried putting the bulk arrays into data value references?
> Memory cleanup
For subVIs, there is "request deallocation", which should be used with great caution, because deallocating memory that will need to be reallocated a nanosecond later is very expensive.