LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Huge memory use by Waveform data type?

I'm having problems with the Waveform data type. In the end I came up with my own way of dealing with the data, but I'd like to know if anyone else has had problems like mine, and if it's officially recognised as a problem.

In my application, a spreadsheet file (about 20MB, and containing 60 columns) is read, and an array of Waveforms is created (one Waveform for each column). The data is then processed using a couple LabVIEW default VIs, then converted back to an array of Doubles and saved as a different spreadsheet file.

The process takes around 15 minutes, and at peak consumes 1.5 GB of memory. The resulting file is around 170 MB in size.

With my own solution, using just arrays of Doubles rather than Waveforms, the pr
ocess takes 5 seconds and uses 20MB of memory, resulting in a 5MB file.

Reading elsewhere on the NI site I see it's recommended to only do small operations using Waveforms - but even though my Waveform operation is very large, the problems caused are ridiculous.

(Oh, and 1 GB of that memory isn't freed up when the execution of the program finishes. Surely LabVIEW is better at cleaning up memory than that...?)

Also, using the default VI to detect spikes in the signal seems to produce random results - in the data set that's being processed there are four spikes on each channel, and whereas my own VI using just the array of numbers gets it right, the built-in VI using waveforms picks up no spikes at all on some channels and up to 100 on others.
0 Kudos
Message 1 of 1
(2,534 Views)