LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Memory problem with my subVI

Solved!
Go to solution

There are also limits to the size of arrays in LabVIEW. There's a size limit, but also a memory limit, IIRC. I'm sure there's some documentation about this somewhere.

 

I can't recall if that limit changes for 64 bit LabVIEW (the OS isn't relevant here).

 

The "Memory Management for Large Data Sets" help topic might give some ideas as well.

 

And this: Managing Large Data Sets in LabVIEW.

 

Any chance you can post a running example? One with just the problematic part, including some input data, and expected outputs?

Message 11 of 14
(565 Views)

Another point to remember is that arrays (of any dimension) need continuous memory large enough to fit. Getting 1C1G part of continuous memory is a lot harder than getting 100X10 MB parts of memory...

 

So if you can make an 1D array of clusters containing 2D arrays, it might make a difference as well. Or an array of DVRs, Queue references, etc. Anything to avoid those huge 2D\3D\4D arrays...

0 Kudos
Message 12 of 14
(557 Views)

wiebe@CARYA wrote:

Another point to remember is that arrays (of any dimension) need continuous memory large enough to fit. Getting 1C1G part of continuous memory is a lot harder than getting 100X10 MB parts of memory...

1X1GB

0 Kudos
Message 13 of 14
(544 Views)

Thank you for your hints, I tried to take a look at that management of large data sets and now I am aware of more advanced programming techniques in Labview and with help of which I would permanently solve my problem. But I see there would be lot of work and studying to do so (what is always good) but for now I solved my problem only by taking previous comments into account.

In my previous version of VI I had many mistakes, which led to holding multiple copies of large arrays in memory and so I tried to fix it. Now in the worst scenario I get an array that take 300MB of memory but I don't get 'out of memory' error. This is sufficient for me now as I hardly ever will have more experimental data to analyse at once. I uploaded corrected version of my VI where I'm using DVRs as well. It looks like it helps a bit because passing this reference into next VIs is more efficient for memory. I had to start using 'Request deallocation' VI for the most of my subVIs because many of them allocate huge amount of memory, which is deallocated automatically only after the top level VI is stoped. 

0 Kudos
Message 14 of 14
(518 Views)