I’ve noticed huge performance decline in IRenderableSeries.HitTest function in the latest 2.3 version compared to version 2.1.1.
For chart with 1.5mln points calling this function is now about 1000 times slower then in earlier version (from ~40 tics to ~40000). I can provide some sample code if required.
Just to let you know, one of our team investigated deeply today, this is what he said:
The example appends several thousands points with same X coordinates, so I think performance decrease is because of implementing correct hit test for points with same X values. This improvement was originally requested by users who use scatter charts to append points with same X values.
In 2.1.1 we didn’t support such case at all – we just use binary search to iterate through sorted points till we find nearest datapoint based on only X coord. In later versions after we find this X point we’re trying to find all points with such X value to determine which of them is nearest one, then we need to find all Y points with the same X-Value to find the nearest actual hit test point. So this 1000x decreasing of performance is because we’re trying to find correct nearest point from 1000++ points instead just finding first one with valid X value.
What we’re doing now is as a team analysing the hit-test code in depth and seeing if we can rephrase it to support all the new use-cases (such as finding nearest X then Y) as well as delivering high performance. It’s not an easy task but we are taking it seriously. I will keep you informed.
Please login first to submit.