i'm currently testing if ddd will match our requirements regarding performance. therefore i have built a little app that has n data sources generating 2048 data points very fast (100Hz/sleep 10) and use ddd to display the data. I have built my own custom
control hosting the chartplotter and refresh it using a dispatcher timer to decouple data generation from displaying/refreshing.
my control refreshes the plot (if necessary) every 250ms (this means 4Hz) which is far away from realtime, but however would be acceptable.
Here is what i experienced:
When using 9 of these charts (3x plots on screen) cpu load varies depending on how large i size the window. When i scale to a small window i got around 14% cpu load, which would be acceptable since it gives room for even more data to be charted and
already is a kind of heavy load scenario for our purpose. BUT, when i size the window to fullscreen (1600x1200) cpu load goes up to 50% which shows that the rendering process itself takes very long to draw all the stuff.
Why is this the case? Is WPF itself the reason for the slow down? I come to nearly similar cpu loads on my virtual machine (using parallels) with WPF HW acceleration turned off compared to my faster work pc running windows 7 natively and wpf hw acceleration
turned on (there is a registry toggle for that, and i have to disable it on my virtual machine, because blend caused render bugs). OK, the resolution of the work pc is in fact higher and cpu load is about 45% and not 50% like on the vm.
But how can this happen? I have not used performance tools like dotTrace to look into it, but for me it would be interesting to know how the actual size of chart can have such an impact on performance. the number of data points is the same, just the plain
(hw accelerated) painting takes even long if the window is bigger.
@Mikhail/the century: I remember that you conducted a little quickndirty sample of using some sort of directx D3DImage stuff to increase rendering performance. However it did not compile or run on my pc without problems. How much would it afford to bring
this approach to a "stable" nightly build? I'm again and again seeing people having problems finding a good flexible AND FAST charting library, ddd could be a great solution to this problem but i think it is too slow in the current state.
Any comments/discussions/help are very appreciated.