You don't have the option to set a VI to be inlined in the caller if it is called dynamically. Makes sense--the compiler doesn't know about it a priori, so it can't shoehorn it into the block diagram under the hood. This holds true for dynamic dispatch VIs, such as Override methods in LVOOP. In this case, though, it would seem that the compiler does have enough information to do the inlining---it could basically create case structures for each unique child class of the parent class being overridden.
Similarly, if the compiler were smart enough to do the behind-the-scenes case structure implementation, then it should also be able to preallocate clones for each instance of the Dynamic Dispatch VI.
The reason I bring this up is that I have a situation that screams for OOP implementation, but the dynamic dispatch portion needs to run in a very tight loop--several, tight loops, actually. In parallel. I am trying an OOP implementation of monitoring incoming data for Warning conditions; so I want a generic "Warning" class that has descendent classes for different conditions (i.e. monitoring for Limit violations, value change events, etc.). But, because the data throughput in the system is so high, I don't think I can trust the implementation to OOP--I think the subVI call overhead and jitter from sharing clones will be a bottleneck. 😞
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Any idea that has received less than 5 kudos within 5 years after posting will be automatically declined.