I'm experiencing UI hang and slow chart updates when trying to plot ~10,000 points of scrolling data (10 traces, 1,000 points each) in a WPF .Net Core 8 application. This occurs with Direct2DRenderOptions and BitmapRenderOptions. I'm using a ScatterLineSeries ("SL") with data binding to a simple class with "X" and "Y" properties (see below). I'm adding points to each trace in real time and updating the HorizontalAxis Minimum and Maximum to make the data scroll across the screen. The update time is 5 FPS. The chart updating slows down at >=500 points in each trace and the UI starts to hang. I also reviewed the real time charting demo and have tried using the async data source described here xaml-sdk/ChartView/WPF/AsyncData at master · telerik/xaml-sdk with no improvement.
Any suggestions would be greatly appreciated.
SL.XValueBinding = new PropertyNameDataPointBinding("X");SL.YValueBinding = new PropertyNameDataPointBinding("Y");
SL.ItemsSource = PlotPen.data;
Thanks, Vern
Thank you for your response. I have just purchased Telerik WPF UI and one of the main draws was that it offered DirectX charting. I was expecting at least 30 FPS for charts with many points. It seems that this is not possible. I resorted to writing my own charting control for DirectX using Vortice.Windows with a fallback to bitmap with WriteableBitmapEX. I am able to achieve 30 FPS with up to 50,000 points.
I am not pleased with the RadChartView performance. However, the RadGridView has been very impressive, so I'm not completely disappointed.
Sorry to hear that you are not happy with the chart's perfromance. In general the performance is optimized as much as possible in the context of WPF, but since the chart needs to support multiple scenarios, data bindings, stylingin and others, it comes with some performance drawbacks. Especially with a fast UI updates, which often is heavy for the WPF layout system itself.
As for the DirectX charting, I guess you mean the Direct2D rendering. This actually greatly improves the performance compared to the default WPF/Xaml rendering.
Also, DirectX could refer to the WPF rendering pipeline which utilizes the GPU via DirectX.
It is nice to know that you like the RadGridView though.