We have a SciChart plot application that a customer used to render 192 plots. The issue is that when so many series rendered is that the UI blocks on the initial redraw for about a second.
We have a SciChartSurface with RenderableSeries property bound to an ObservableCollection. We do use SuspendUpdates() when populating the ViewModel collection.
What is a good approach to either speed-up rendering or at least make the UI more responsive while all these plots are rendered?
Thank you in advance for any tips.
Thanks for getting in touch! The first things to consider for performance when you have many plots (192, wow!) are these:
If you are using the MVVM API, I would suggest to ditch it for chart configurations with hundreds of series (or hundreds of charts). I know that means uglier looking code, but it will be faster to instantiate.
Next, try to consider if you need the axis labels visible for all charts. I imagine that you have SparkLines or something similar since the charts are so small. Hiding axis labels if you haven’t already can improve performance of loading considerably.
Finally – we are working on a solution for a consultancy customer of ours that has a similar situation. They have 200 series, each with 200 axis on a chart and need to change them very frequently (new series, new axis). This also stresses the chart as instantiation of 1000s of FrameworkElements takes time.
We are working on a prototype for them now which can dramatically improve the startup time for very heavy charts like the one you’re talking about. If that’s something that may be use to you, get in touch with sales, let’s discuss it.
Please login first to submit.