I'm looking for ways to reduce the load time and improve the performance of SfChart (or for alternative controls that trade features for performance). I'm working on a page that displays correlations between data tags, as in the attached image. Each chart has two scatter series (for included/excluded points) and two line series (for the ellipse and for a lasso-esque selection tool). The correlations between each data tag are shown, so we end up with n(n-1) / 2 charts being rendered. The charts have a minimum size so not all are displayed at once, but displays can reach up to 50 tags or more. The SfChart controls strangle the performance of the system, even with as few as 20 tags.
I've read through the
SfChart performance page but the suggestions did not apply. I also took a look at the SfSparkline charts but they do not support scatter plots. The charts are hosted in an ItemsControl that uses virtualization to improve performance, but the display still becomes so slow that it is nearly unusable as the display is scrolled and more charts are loaded. The memory consumption is also incredibly high. Other than hosting four series (two scatter, two line) and having basic interactivity such as mouse events for our lasso selection tool, most features can be sacrificed.
It is important to be able to display so many charts in this format so users can quickly see and compare these correlations to look for outlying points, bad data, etc. We had a charting control that could handle this but we are migrating our software from Windows Forms to WPF and are looking to modernize. I would prefer to continue using SfChart but if there are other Syncfusion controls that perform better, I am open to alternatives.
Attachment:
correlations_83800bab.zip