We've investigated the performance change between the two versions and it turns out that some of it is caused by the overhead incured by the changes we made to our rendering engine to allow data streaming. We essentially put datapoints into bins, and only draw a bin if something has changed within it, allowing us to have a large number of points, whilst only redrawing sections of the chart.
We can increase the speed of the chart by changing the size of the data bins, so we have less bins. Generally, the smaller the bin size the better the performance for streaming, but the worse the performance for huge data sets. The larger the bin size, the worse the performance for streaming, but the better the performance for huge data sets.
Large data set bin size
I managed to achieve the best large data set performance by setting my bin size to be larger than my total number of points. This means there would be a single data bin. For example, if you have 80,000 points, make your bin size 100,000.
Streaming performance bin size
The default bin size for series is 64. This is the size we find works best for data streaming & general chart usage, but feel free to experiment with your own bin sizes.
How to change your bin size
Currently, you can't change your bin size to anything greater than about 10,000 points. We've removed this restriction & we plan to be releasing sometime next week. When the new release is out, all you need to do to change your bin size is import the category SChartSeries+DataBins.h. This will expose the methods:
- (NSInteger) numberOfDataPointsInBin;
- (void) setNumberOfDataPointsInBin:(NSInteger)numberOfDataPoints;
When the release is out, follow the above advice on your bin size & you should see a performance increase. Could you give that a try and let us know how you find the performance increase?
We're continuing to look at increasing the performance of the chart, but the above advice should be a large step in the right direction!