I used the sample program DIdoubleBufPatternGenExtClock653x.C and
changed the buffersize to 10000 and number of buffers to read to
30. I'm on a Windows XP based machine with 1.6GHz processor, 512
RAM. Working in normal mode I got a maximum speed at
4.5KHz. Setting the process priority to high and the thread
priority to Time_critical, I got 8.5KHz. Setting the process
priority to RealTime (warning: you can't even move the mouse much less
anything else in realtime. make sure there are no infinite loops
before trying this) and the thread priority to Time_critical, I got
9.5KHz.
On a side note, that is really confusing me: The more buffers I tried
to take in, the slower I had to make the clock in order to successfully
take in all the buffers. For instance, if i took in 5000 buffers
as opposed to 30, then realtime mode only worked when the processor was
at 4KHz. at 9.5 KHz, it ran for like 3 min then crashed. At
6 KHz, it ran for like 5 min then crashed. I'm not sure why
running the program for longer slows down the process, but it appears
to. I'm not allocating any more memory by increasing the number
of buffers to read unless the DIG_Transfer is using up memory in some
way. The processor is still 100% dedicated to the card so i'm not
sure why time should effect it.
Mark