AnthonV
2007-06-21 16:10:10 UTC
Have you ever noticed that even though the LabVIEW dataflow paradigm enforces code to be executed in a specific order, you are able to get huge (depending on you cluster or array sizes) improvement in processing speed if you enforce order by using a sequence diagram. In many cases you can elliminate the buffer allocations that are (unneccesarily) made by the compiler if you don't rely on dataflow and rather use sequence diagrams.
See that attached images. 'Without.png' shows the code as one would normally wire it - notice the buffer allocation indicated by the red circle. This cluster of mine is very big with large arrays in it so this allocation is very costly. 'With.png' is exactly the same code just with order enforced using a sequence. Notice there is no buffer allocation made by the compiler here. My cycle time on this diagram reduced from 53ms to 5ms (!), just by adding the sequence.
I was hoping that 8.2.1 would be better at this than 7.1 but it doesn't seem so.
Any ideas or am I missing something?
with.PNG:
Loading Image...
without.PNG:
Loading Image...
See that attached images. 'Without.png' shows the code as one would normally wire it - notice the buffer allocation indicated by the red circle. This cluster of mine is very big with large arrays in it so this allocation is very costly. 'With.png' is exactly the same code just with order enforced using a sequence. Notice there is no buffer allocation made by the compiler here. My cycle time on this diagram reduced from 53ms to 5ms (!), just by adding the sequence.
I was hoping that 8.2.1 would be better at this than 7.1 but it doesn't seem so.
Any ideas or am I missing something?
with.PNG:
Loading Image...
without.PNG:
Loading Image...