07-02-2012 09:07 AM
I feel like the lone dissenter, but I really don't use action engines much any more. I consider them part of my toolbox of tricks, but they don't scale well (adding new functions or data), so I typically use data value references with a collection of subVIs instead. This usually gives better performance. The real solution is not to use either, but use local shift registers and messaging architectures to embrace the dataflow (e.g. new actor framework architecture). Data by reference breaks data flow and opens up all sorts of interesting issues.
A couple of other interesting points:
<shameless plug>
If you happen to be in Austin in October for the LabVIEW user group meeting, I plan to speak on this subject at that time.
</shameless plug>
07-02-2012 09:37 AM
@DFGray wrote:
I feel like the lone dissenter, but I really don't use action engines much any more. I consider them part of my toolbox of tricks, but they don't scale well (adding new functions or data), so I typically use data value references with a collection of subVIs instead. This usually gives better performance. The real solution is not to use either, but use local shift registers and messaging architectures to embrace the dataflow (e.g. new actor framework architecture). Data by reference breaks data flow and opens up all sorts of interesting issues.
...
When we write something, we have a target audience in mind.
If we are developing code that we or our peers are going to maintain then the more exotic code patterns can be used.
If we are developing for graduates of LV Core, LVOOP solutions can be confusing for them.
So the "Real solution" depends on the audience as much as it depends on the theory.
Ben