LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Attempt to read large TDMS file causes lack of memory error

I find Data Value References easier to use than single-element queues, but you need LabVIEW 8.6 or higher to use them.  But I agree with Ben on breaking your data up.  I have successfully filled the entire memory space of my computer using this technique.  I need to benchmark memory use of 32-bit LabVIEW on a 64-bit system vs. 64-bit LabVIEW.  The topic keeps coming up and I have no excuse for not doing it, since my main development machine is running 64-bit Vista.
0 Kudos
Message 11 of 13
(1,122 Views)

DFGray wrote:
I find Data Value References easier to use than single-element queues, but you need LabVIEW 8.6 or higher to use them.  But I agree with Ben on breaking your data up.  I have successfully filled the entire memory space of my computer using this technique.  I need to benchmark memory use of 32-bit LabVIEW on a 64-bit system vs. 64-bit LabVIEW.  The topic keeps coming up and I have no excuse for not doing it, since my main development machine is running 64-bit Vista.

 

I was speaking from experience with real apps so I can not speak for the DVR (yet).

 

Double checking with the Developer I was supporting revealed we were able to utilize 2.1 Gig using the multi-queue technique before we spotted an issue that reduced the memory demand to about 140 Meg so we stopped poking it. Smiley Tongue

 

I THINK I managed to match the 2.1 Gig on my new laptop that has 8 Gig.

 

I would really love to hear about how much you  can use under a 64 bit OS.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 12 of 13
(1,117 Views)

labmaster wrote:
I don't understand why DIAdem can treat the large data but LV can't.

DIAdem lets you "register" files instead of immediately loading the entire file into memory. Data is then loaded on demand, meaning that for graphing, data is reduced to a resolution that works for the current output settings (screen, printer, file export) and for analysis, data is processed piecemeal (if possible). You can do the exact same thing in LabVIEW, but it'll require a bit of coding. Opening a TDMS file in LabVIEW does pretty much what registering a file in DIAdem does - it loads the hierarchy of groups and channels into memory, along with the properties for each of them. In order to process large channels, you would now need to load the data values in chunks of e.g. 10 or 100MB, process each chunk and let go of it before you load the next one.

 

Herbert

0 Kudos
Message 13 of 13
(1,102 Views)