SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, and now iOS Charting & Android Chart Components

Welcome to the SciChart Community Forums!

Please use the forums below to ask questions about SciChart. Take a moment to read our Question asking guidelines on how to ask a good question and our support policy. We also have a tag=SciChart on Stackoverflow.com where you can earn rep for your questions!

Please note: SciChart team will only answer questions from customers with active support subscriptions. Expired support questions will be ignored. If your support status shows incorrectly, contact us and we will be glad to help.

Answered
0
0

Hi,

Given the 2D heat map sample, could you suggest how to improve performance so that UI remains responsive. This is somewhat similar to what we would in worst case need for our application. There is room for tweaking the updates to UI and how things get displayed or using a non MVVM solution, etc.

Thank you for your help!

Rok

Images
  • You must to post comments
Best Answer
0
0

Hi Rok,

I’m talking to you on support tickets about this so I don’t want to go into much detail (as requires a lot of investigation from both our sides).

Save to say:

— If you set SciChartSurface.RenderPriority = RenderPriority.Low on the heatmap series it will put their drawing priority just below mouse-events on the WPF Application, thus keeping the application responsive.

Actual performance improvement is something that has to be done on the Heatmap series as our implementation is not optimal. We could get it 10x faster but would require an internal re-write. A lot of people have requested faster Heatmap performance (it is a popular feature!) so we are considering supporting this in the near(ish) future.

Do reply back here what your tips were to improve perf but for anything more technical lets keep it on the support ticket.

Thanks!

Andrew

  • Rok Rode
    Setting the rendering priority coupled with the changes I described below made the UI responsive and decreased the performance load. Thanks for the help!
  • You must to post comments
Great Answer
0
0

In the sample what we need to do is display both the old and new data that overwrites it. This was initially done using two data series, where the old data had a set opacity to distinguish it from the new data. This caused additional load on rendering due to doubling of data points. To decrease the number of points I used only one data series containing both old and new data. When new data arrives it overwrites the old data. To display the difference between old and new data to the user a box annotation set to semi transparent color was overlayed over the old data. The annotation box size is adjusted on every data update to only cover the old data.

Other tweaks were to not update the heat map on every new line that arrives. Since min and max values can change on every update, changes to data series min max values was also deferred until heat map is redrawn. Not doing that would cause a redraw. Minor tweak was also to fix the size of heat map to prevent re-rendering due to dock container placement

  • You must to post comments
Showing 2 results
Your Answer

Please first to submit.