LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Insufficient memory issue

Hello,

Simulation can't terminate due to insufficient memory, whereas according to task manager only about 50% of memory is used.

Code attached.

Thanks.

Insufficient_memory.JPG

0 Kudos
Message 1 of 5
(2,275 Views)

Hi Pavel,

What LabVIEW edition are you using?

 

I believe 32-bit LabVIEW has a limit of using 2GB of RAM, so if your computer has 4GB of RAM it would make sense that the program throws an error at 50% used.

0 Kudos
Message 2 of 5
(2,259 Views)

Hi Gregory,

16 Gb

Thanks

0 Kudos
Message 3 of 5
(2,243 Views)

16GB won't help you if you use 32bit LabVIEW. On a 64bit OS, 32bit LabVIEW can use up to 4GB.

 

I am surprised that you can fill 50% of the memory, because arrays need to be contiguous in memory and you typically run out of contiguous free space much faster than total free space. You are constantly growing arrays, so whenever the preemptively allocate space runs out, everything needs to be copied to a larger space. You entire code just screams "inefficiency". None of your output arrays are needed. All you need is open the various output files before the loop and append to the relevant file as you go. Also the writing to spreadsheet needs to internally generate tons of intermediary data.

 

For large data files, it is generally a bad idea (very inefficient!) to use formatted text files. Why not do flat binary files?

 

Are you aware that "index array" is resizeable?

 

Please tell us what the program is supposed to do. I am sure there is a solution with <10% of the code and memory requirements!!! 😄

0 Kudos
Message 4 of 5
(2,233 Views)

16GB won't help you if you use 32bit LabVIEW. On a 64bit OS, 32bit LabVIEW can use up to 4GB

Ok. I'll try to upgrade to 64bit

 

You entire code just screams "inefficiency". None of your output arrays are needed. All you need is open the various output files before the loop and append to the relevant file as you go.

You mean replace output arrays by some "write-to-file" objects ?

 

For large data files, it is generally a bad idea (very inefficient!) to use formatted text files. Why not do flat binary files?

The sizes of datasets in output arrays shouldn't be excessively huge, but anyway I'll try also binary option.

 

Please tell us what the program is supposed to do. I am sure there is a solution with <10% of the code and memory requirements!!!

The program must read digital bitstreams from 8 lignes (about 50MB/s datarates). The beatstreams sizes are 20 ... 40Mb (depending on channel)

Once read-in, the bitstreams must be compared either with previous read-in of the same channel, either with some "gold bitstream" of the same channnel.

All comparaison discrepancies must be detected and logged for post-analysis.

 

Actually I have no acquisition HW, so I try to emulate our testcase in LabVIEW in order to evaluate LabVIEW performance with respect to these tasks.

 

Sincerely,

 

Pavel

 

0 Kudos
Message 5 of 5
(2,183 Views)