The suggestions regarding page faults and memory allocations seemed to be right on target. I simplified and modified my vi and the Labview page faults remained constant for long periods of time instead of constantly increasing. Oddly enough, the modification I made seems innocuous. In the attached file “DIO107.vi” which is simplicity in itself, I had originally modified the library function DIOread.vi to add a connection to its inner workings to provide it with a dummy array to fill with data. I renamed it SILCRead1.vi. In my program, I first check the state of the DIO buffer by reading zero scans to determine the backlog and if the backlog is greater than the number of scans I wish to read, I enter the case structure to read them.
Originally, I had wired the dummy array to the input of both the DIORead.vi’s, the one which reads zero scans and the one that reads the data. When I had both wired, I got thousands of page faults/second. When I wired only the vi that actually reads data, the page faults stopped (pretty much).
Unfortunately, last night’s test produced 5 DIO errors similar to the previous ones so the problem is still there. The only changes I made from previous tests are not providing the “zero read” DIORead.vi with the dummy array to fill and I also changed the size of the DIO buffer to 30 Mscans instead of 15 Mscans.
I watched task Monitor for over an hour last night and page faults did not increase at all during that time and I had no errors. In the morning, they had increased by 107,590. Virtual memory size had increased by 3,404 K and 5 errors had occured during the night.
The times between errors are not as regular as they were. Instead of a uniform 1hr, 3min, 20+/- second interval, I got the following: 1:43:43, 0:43:10, 1:28:47, 0:31:19, 7:19:11 between errors.
As you can see my test program is ridiculously simple with no writes to disk anymore. I wonder if I should re-install Win XP. I would love to go back to Win 98 which did not have all the bells and whistles to get in the way, but I now only have LV 7.1 and it won’t run on Win 98.
LabView was the dominate process running last night using the most memory and 10-40% of CPU time. I have watched task monitor during the times the system freezes but it shows nothing. It is as if it freezes too.
I have disabled as many Windows processes as I thought safe, to no avail. I will run it again tonight without the LAN cable attached.
Any more suggestions?
Thanks,
Pete King