Pre loader

Poor performance with XyScatterRenderableSeries and PaletteProvider

Welcome to the SciChart Forums!

  • Please read our Question Asking Guidelines for how to format a good question
  • Some reputation is required to post answers. Get up-voted to avoid the spam filter!
  • We welcome community answers and upvotes. Every Q&A improves SciChart for everyone

WPF Forums | JavaScript Forums | Android Forums | iOS Forums

Answered
1
0

Hello,

I’m having issues when I want to apply a custom PaletteProvider to a XyScatterRenderableSeries.

It takes forever to show just 10.000 points! I am really surprised given that without custom coloring I can render more than 50M points.

As far as I know, I’m not doing anything fancy. Have a simple transfer function inside the PaletteProvider that colors the PointMarker based on a Z value that is set as an indexed collection which I can access directly on the Palette Provider.

I’m using a SquarePointMarker as the marker, and I’ve also tried to set DirectXHelper.TryApplyDirectXRenderer to true.

Is this a known performance issue? Is there some way to by-pass it?

We’re expecting to be able to draw about 10M points colored.

Thank you.

Regards,
Sebastian

Version
4.2.9002
  • You must to post comments
Great Answer
0
0

Update: Feb 2018 / SciChart v5.1

In SciChart v5.1 we have now implemented a new scatter series type which is able to handle big-data sets with scatter-charts and PaletteProvider.

Find out more at the page The ExtremeScatterRenderableSeries.

enter image description here

  • You must to post comments
0
0

Hi Sebastian

It really depends on how many colour changes you have in your dataset. Every time the colour is changed we flush the render pipeline and create a new cached marker for drawing.

The worst case scenario is if you change colour every point to a new random colour. This will yield very poor performance.

If you are changing colour every point but say to the same value e.g. Red/Green/Red/Green then there may be something we can do for you. E.g. Advise on a custom series

Finally What we’ve built is for the general case and there are always edge cases where performance is poor. In most cases however it is usually possible to create a workaround for a specific case. Let me know more about your requirements and I’ll give you some ideas.

Best regards,
Andrew

  • Sebastian de Ugarriza
    Thanks for the response Andrew, I’ll take a look at it. I was testing it with totally random colors for all the values. I’ll get a more meaningful sample and try again. If it happen to not be performant enough I’ll contact you and explain further our intentions.
  • Andrew Burnett-Thompson
    Aha not surprised then ^_^ It’s more typical that people change colour a handful of times in the dataset. Even if you have more frequent colour changes there are things we can do to make this faster for a specific case (as opposed to the general case, which is always a hard problem to solve!)
  • You must to post comments
0
0

Andrew,

Unfortunately the data sets i’m receiving as examples don’t have a pattern to follow.

If I set a DataSeries with sorted X values but unsorted Z values, the application even crashes.

If I set a DataSeries with unsorted X values but sorted Z values, everything works ok and pretty fast, but this is only 150.000 points so I don’t think it will scale for more data.

Can you think of anything I could try using the first scenario?

Thank you.

Best regards,
Sebastian

  • Andrew Burnett-Thompson
    I need to see your code & data. To get speed here we might need to use the custom series API. Can you send something over?
  • Sebastian de Ugarriza
    I believe I may. I’ll prepare an fully working example. Thank you!
  • You must to post comments
Showing 3 results
Your Answer

Please first to submit.

Try SciChart Today

Start a trial and discover why we are the choice
of demanding developers worldwide

Start TrialCase Studies