From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

CVI Execution Profiler - DLL overhead

Solved!
Go to solution

Hello,

 

I'm using CVI execution profiler toolkit to analyze performance in system where a implicity linked DLL is called from an application exe.

 

It appears that in many of the statistics the component time % for the exported DLL function is roughly half the overall time for the component.

 

For example (with 'dll_function' selected in profiler):

 

+exe_function

-dll_function                         50%

DebugPrintf                48%

OtherFunction              2%

      

 

Would this time coorelate with overhead of calling the DLL?

 

 

Thank you for any help in regards to this.

 

0 Kudos
Message 1 of 6
(3,566 Views)

Hey jharris,

 

I ran one of our simple examples and saw somewhat similar behavior--my GetUserEvent function takes about 66% of the time and the DLL function takes 33%. In my case, this simply means that the code is spending more of its time running the GetUserEvent function than in the DLL function. I'd expect this, since the GetUserEvent function is checking for UI updates. 

 

Is your exe function doing something other than just calling the DLL function, and do you see the other 50% of time anywhere else in the execution profile? If so, I suspect that it's just indicating that only half of your execution time is spent in the DLL function.

0 Kudos
Message 2 of 6
(3,542 Views)

Daniel E,

 

It seems like when I click the DLL function in profiler the component times for the function and it's callee functions all add up to 100%.

 

Therefore, I wondered if the component time shown for the  function itself could be overhead or maybe the time to initialize the stack when entering function? 

0 Kudos
Message 3 of 6
(3,539 Views)
Solution
Accepted by jharris66

jharris66,

 

I believe that would be a safe assumption, but since I'm not seeing the same behavior on my system, I can't confirm whether that's because your DLL is more complex than mine or because something else is contributing to the timing. Would it be possible to see a screenshot of the profiler and the code contained in your DLL function?

0 Kudos
Message 4 of 6
(3,508 Views)

Hi,

 

What is the dependent dll we need to copy on target system on Windows system with out LABWindows installed when we include "nivision.h" and "NIIMAQdx.h" in CVI dll.

Regards,

0 Kudos
Message 5 of 6
(3,333 Views)

Dear anuradha1,

 

please adhere to the forum rules, in particular do not hijack other users threads... Your question seems not to be related to the execution profiler, so please start your own thread with your topic instead, this will help keeping the forum a useful knowledge base.

0 Kudos
Message 6 of 6
(3,328 Views)