08-10-2016 10:44 AM
Hi
I have a problem with PCL 32bit dll, that I'm using in LabVIEW 2014 application.
When I'm using the same dll in a different application, it takes couple ms to execute, but when run in bigger one, it needs about 150ms... I'm running it in the loop of ~2000 loops, so I really need to make it faster (I cannot set parallel execution to this one).
I've set dll to run in any thread, I've also sprecified error checking to Disabled and the vi execution to High Priority.
During the run LabVIEW is using about 1,5 GB memory and full CPU utilisation of one of the cores.
What seems to be the problem? How to find out what is causing it?
08-10-2016 12:10 PM - edited 08-10-2016 12:13 PM
What are ~2000 loops? Are they all running in parallel? What does the DLL do? How do you measure the speed?
08-10-2016 01:24 PM
Hi
I have to use this dll in the for loop about 2000 times, so execution is about 300 seconds.
I can't use it in parallel, because I'm using shift register.
DLL is ICP Register function which compares two sets of points and find alignment. It is used for image processing.
I was measuring speed by tickcount diff before and after dll.
08-11-2016 04:15 AM
Sorry if i didn't understand properly.
-What are the inputs and outputs to and from dll in both applications?
-Are they same or different?
-You mentioned it compares two sets of points and find alignment-can you give more detail on this?
-Does it do some search algorithms?
-Posting vi or snippet can help.
08-18-2016 03:22 AM
Hi
Thanks for taking up the case. I still don't know what the problem was, everything was exactly the same when it comes to using dll in both apps. The difference was the size of the first app, maybe it needed more memory so this slowed dll down, or maybe something else? As I said, I was trying to switch dll to run not in UI thread, and made prioritize vi that contained it.
At the end I've created my own ICP, which is faster and more customized then the old one. It didn't take a lot of time, and I've learned something really useful