11-20-2007 10:14 PM
11-20-2007 10:15 PM
11-21-2007 01:55 AM
This thing needs major surgery!
The keyword is "in place", and you are not doing it. 😉 You need to initialize an array at a fixed size and never insert or delete elements. All you need to do is replace array elements, keeping the array size constant. You can always rotate the array by a certain amount and overwrite the oldest data. All in place.
Another cause for extra data copies are coercions. You need to make sure that datatypes match.
Remember that arrays must be contiguous in memory. This means that each array resize (insert, delete) will force a copy of the entire array to be created in memory at a new location.
How is the calling program? Ideally you would keep the data in a shift register in the toplevel program and graph it right there instead of pushing large arrays deep into subVIs and shuffling the data via property nodes.
Could you explain in more general terms what the program is supposed to do exactly?
11-21-2007 08:02 PM
11-21-2007 09:54 PM
11-21-2007 10:47 PM
11-21-2007 11:00 PM - edited 11-21-2007 11:01 PM
11-22-2007 01:02 PM
11-22-2007 08:27 PM
11-22-2007 09:34 PM