06-23-2006 10:54 AM
Darren wrote;
"I'll see if I can get someone to enlighten us."
Oh yes PLEASE!
Since it was Greg's suggestion to add it to the VIAnalyzer, this would be a nice oppertunity for him to make another guest appearence.
Besides, we are still trying to trick him into becoming the the first Blue Enthusiast.
Ben
06-23-2006 02:41 PM
06-23-2006 02:53 PM
06-23-2006 02:57 PM
06-23-2006 03:06 PM
Thank for the vist Greg!
As usual, I will have to read your post a couple of more times to get it all.
While developing the benchmark VI's. I originally was passing the array back out CONDITONALLY and that really confused my numbers.
While playing with it I came to realize that I was confusing my measurements of the data passed in with what was being returned.
What I saw there (try it yourself if you are interested) was if the output terminal was in the case that was not executing, the sub-VI ran even slower!
I had also read about sub-VI being able to re-use the callers buffers under special circumstances but alway had trouble predicting when it would or would not re-use the buffer.
NOW I have a clue and can start looking closer.
Something tells me the "form" of my sub-VI's may never be quite the same ever again.
Ben
06-23-2006 03:17 PM
Wow, I had not expected this much interest in what I considered to be an arcane point.
Thanks to all for the interest and the info.
I have been an active member of the microchip forum (my embedded background), but I think I need to start spending more time here.
I am still curious as to how reliable single timing measurements are when doing benchmarking since Windows can "disappear" for undocumented amounts of time.
06-23-2006 04:21 PM
Mayb e I am understanding this wrong, but it seems that If I disable debugging, or even set the subVIs to subroutine priority, the "protection" is no longer really needed. Still, the penalty stays about the same under these conditions, it seems.
@greg McKaskle2 wrote:
... But what if you had a breakpoint set on the subVI. At the breakpoint, the panel is open, and you type in new data. Oops. The caller is supposed to protect the data, but if the terminal is conditionally read, it can't predict you won't do what I just described. On the otherhand, if the terminal is on the top level, the breakpoint on this VI will always happen after the data from the terminals is read. That means the subVI can truly be inplace only if its terminal is owned by the top diagram and not placed into a loop, sequence, or case diagram.
...
Clear as mud?
06-23-2006 07:50 PM
I am still curious as to how reliable single timing measurements are when doing benchmarking since Windows can "disappear" for undocumented amounts of time.
06-23-2006 08:13 PM
06-24-2006 01:08 PM
Okay, my LabVIEW ignorance is going to show again, but I would rather look stupid than be stupid...
I thought a SubVI was a subroutine (based on conventional programming).
What is the difference?
Thanks.