Hey Trevor,
I can certainly understand that many of my suggestions do not make sense given the architecture of your larger project, and I did not mean to imply that your code was the source of any particular problems being seen. I only meant to make a couple suggestions based on the program I had received that may or may not have proven useful to you.
Before the day ended, I wanted to touch base with you quickly again, and let you know the results of some of the testing I had completed. First, while I don't know if I explicitly mentioned it or not, one thing you may try to improve the responsiveness of your UI would be to place a ProcessSystemEvents in your spin loop. Given the program I was supplied with, the only place I can see that might cause unresponsiveness in the UI is within this spin loop, otherwise, events are being processed by RunUserInterface. Placing ProcessSystemEvents in the spin loop may be a quick an easy solution to the unresponsive UI.
Out of curiosity based on your remarks, I ran some benchmarks plotting 100000 points onto a stripchart for the CVI 8.1, 8.5, and 9.0 runtimes. This was basically a test to see how long it would take the stripchart to plot 1000 points of data 100 times. The results of these tests were all very similar:
* CVI 8.1 Continuous - 19.73 seconds
* CVI 8.1 Sweeping - 30.94 seconds
* CVI 8.5 Continuous - 21.66 seconds
* CVI 8.5 Sweeping - 30.64 seconds
* CVI 9.0 Continuous - 18.31 seconds
* CVI 9.0 Sweeping - 30.03 seconds
For this reason, it seems unlikely to me that differences in graph performance between CVI 8.1 and CVI 8.5 would be the cause of the slowdown you are seeing.
Just to clarify, when you say that "This is using the exact same Windows XP target machine under identical operating conditions," do you mean that you build the application on a Vista machine with 8.5 and an XP machine with 8.1 and are then comparing the performance of these built exe's on a third XP target machine? If this is the case, and based on the previous benchmark results, it seems to indicate to me that the only differences between the two applications would be features that were added to the strip chart in CVI 8.5. While it seems an unlikely culprit to me, have you ensured that the stripchart is configured exactly the same in the CVI 8.5 app as it is in the CVI 8.1 app?
Finally, in an attempt to narrow the issue down further, I rewrote the application you sent into a much simplified form, but tried to retain the important aspects. A stripchart plots 8 traces of data published to a thread safe queue from an asynchronous timer thread every .05 seconds. I think this very closely resembles the primary components of your test program that you submitted. However, I was unable to see any of the performance issues that had been seen in the test application you had submitted. I have attached the program for reference, and if you have time, it may be helpful to see if the application performs well on your machine, or if there is anything you can do within it to change it such that the performance problems are realized.
Also, if you would like to post your more recent versions of the program to the ftp site listed above, I would be happy to take a look at them.
I apologize that I don't have more for you yet, but will continue investigating...
NickB
National Instruments