09-23-2009 12:43 PM
Running the exact same executable on an Windows XP controller (VXIpc-870b) takes considerably longer (38.24s) than the same executable on Windows NT 4.0 controller (VXIpc-870, ). When running NI SPY to capture the calls, the first 46 are the same, but the XP controller logs an additional 60,000+ calls.
The executable is a self test on a switch matrix that opens and closes the relays and takes measurements on a DMM in the VXI chassis.
Using MAX I recorded a few software versions:
NT Controller:
CVI Runtime - 5.500.4.1
IVI Engine - 1.0.1
Labview Runtime - 5.1
MAX - 2.0.3.6
NI Spy - 1.4
NI-488.2 - 1.70
NI-DAQ - 6.1.0
NI-PAL - 1.2.1f0
NI-VISA - 1.2.0
NiViSv32.dl - 2.0.0 (build 16)
Visa32.dll - 2.0.0 (build 16)
TestStand - 1.0.1.100
XP Controller:
CVI Runtime - 7.1.1.313
Labview Runtime - 6.1, 7.0, and 7.1
MAX - 3.1.1.3003
Measurement Studio - 6.0
NI Spy - 2.2.0.12
NI-488.2 - 2.30
Traditional NI-DAQ - 7.4.0f0
NI-DAQmx - 7.4.0f0
NI-PAL - 1.9.1.0
NI-USI - 1.0.2
NI-VISA - 3.3
visa32.dll - 3.3.0.49152
NiVisaServer.exe - 3.3.0.49152
NIvisaic.exe - 3.3.0.49152
NI-VXI - 3.3.1
TestStand - 3.1
I haven't done any kind of programming (introductory at that) for years and I thought I would check to see if anyone knew of a reason why the same code would have such a longer duration. My understanding of our system is that the executable and higher level drivers are exactly the same, the only difference being the lower level drivers to the actual instruments.
Thanks for any leads or help!
Mathew
09-24-2009 01:40 PM - edited 09-24-2009 01:45 PM
I updated the XP machine to the following:
NI-VISA 4.6.1
NI-VXI 3.6
NI-488.2 (2.71)
The calls recorded in NI-SPY went from 60,000+ to over 330,000.
09-24-2009 01:55 PM
09-24-2009 04:36 PM
Hi,
Without seeing the source code, it's hard to say why the numbers of calls/time to execute has increased. It could be the case that the driver functions themselves changed between different versions. NI-VISA 1.2 is very old, so I'm sure quite a bit has changed between that version and VISA 3.3/4.6.1. I noticed a lot of low-level VISA calls (viIn16, etc.) with the newer driver install, and none on the older system. What I would try doing is using a VISA Test Panel to send a *IDN? command to a device in both your old and new systems, and check the spy captures on both of those operations to see if there's a huge difference. If there aren't, I would suspect it's probably an issue with how your executable functions.