LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Any way to improve memory usage?

I am developing a DAQ system which will use 3 PCI-6133 cards to read up to 24 channels of MHz data.  However, I am running out of memory when I attempt to collect a large amount of data (e.g. for all 24 channels at 2.5 MHz, the limit is 2.9 MSamples, for only 8 channels at 2.5 MHz, the limit is 6.3 MSamples).  I have attached the part of my code that collects and records the data.  Is there any way to further optimize it?  Thank you Smiley Happy

0 Kudos
Message 1 of 4
(1,394 Views)

Hello extrandb,

 

If you click here you will be directed to a Knowledge base discussing optimizing memory usage in VIs. Also, looking at your code, you may want to add a clear daqmx task vi. Hope this helps!

 

 

Mychal F

Applications Engineer
National Instruments
0 Kudos
Message 2 of 4
(1,336 Views)

You can look at data type.

24 ch * 2,9MSa * Doubles = 556Mb

 

If you have sufficient memory it might be an issue of achieving free chunks of memory, which leads to an old discussion of large data sets.

 

/Y

G# - Award winning reference based OOP for LV, for free! ADDQ VIPM Now on GitHub
"Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
Certified-LabVIEW-Developer
0 Kudos
Message 3 of 4
(1,304 Views)

Additionally: Are you running 32- or 64bit?

With 32bit, the memory space you can adress is limited by default to 2GB per process. With some additional settings (see info here) you can extend it to 3GB.

Please note that arrays have to be contiguos in memory, hence memory fragmantation can always be an issue.

 

hope this helps,

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 4 of 4
(1,292 Views)