11-26-2008 09:16 AM
Hello, i'm writing an application that makes intensive use of dynamically called vis and i wonder about the efficiency of the multi-threading...Does a called by reference vi execute in the same thread than the caller, or in the thread set in its vi property ? Does the invoke node behave the same way or not ? Does the behavior change if the call is made within a timed loop ? Thanks for every lightening !
11-26-2008 10:20 AM
VdG wrote:Hello, i'm writing an application that makes intensive use of dynamically called vis and i wonder about the efficiency of the multi-threading...Does a called by reference vi execute in the same thread than the caller, or in the thread set in its vi property ? Does the invoke node behave the same way or not ? Does the behavior change if the call is made within a timed loop ? Thanks for every lightening !
There is a KB article on the LV execution system (that makes my head spin) so I will avoid trying to summarize that info in a short reply.
The functionality that allows the use of of dynamic calles is simply AMAZING (speaking as someone that used to do Crash-Dump analysis for OS's). I have never been able to measure or detect a differnece in calling a VI dynamically vs explicitly. A nice implementation of this is LVOOP Dynamic Dispatching where the VI that is executed is determined at run time (now speculating) that I beleive uses VI server to accomplish this (since the requirements of Dynamic Dispatch are for the most the same as doing VI server calls).
Your Q about the Timed-Loop is a good one because the Timed loop does have an option that lets you assign which core the code will run in.
Ben