【发布时间】:2012-02-10 07:39:39
【问题描述】:
iPhone 开发:处理大量数据时 Core-Plot 性能缓慢。
我尝试将 500 个数据放入 Plot。性能表明它真的很慢。
大多数烛台图都混合在一起......
请问有人有什么解决办法吗?
【问题讨论】:
-
您应该使用 Instruments 来分析代码并查看其大部分时间花在哪里。
iPhone 开发:处理大量数据时 Core-Plot 性能缓慢。
我尝试将 500 个数据放入 Plot。性能表明它真的很慢。
大多数烛台图都混合在一起......
请问有人有什么解决办法吗?
【问题讨论】:
注意绘图区域的大小。如果您的数据点多于像素,请按照@benzado 的建议过滤数据集。
使用可快速绘制的图形元素——不透明的颜色、无渐变、无图像、无阴影。如果条形图只有几个像素宽,请不要同时设置填充线和边框线;使用哪个画得更快。
减少或消除无关元素,如小刻度线和网格线。
使用一种数据源方法,在一次调用中提供一组点,而不是一次提供一个。
-(NSArray *)numbersForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndexRange:(NSRange)indexRange;
-(double *)doublesForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndexRange:(NSRange)indexRange;
-(CPTNumericData *)dataForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndexRange:(NSRange)indexRange;
【讨论】:
我们对 iOS 图表进行了一些速度比较,其中之一是 Core-plot。不幸的是,Core-plot 太慢了,无法进行第一次测试!
还有其他图表组件能够更有效地处理大数据。
测试结果和测试设置在这里:https://www.scichart.com/ios-chart-performance-comparison
可以在此处找到四个主要图表 iOS 提供商之间的比较结果以表格格式。
披露,我是 SciChart 项目的技术主管
【讨论】:
绘制数据样本!如果您实际上不需要全部绘制,请不要绘制所有 500 个数据点。
【讨论】: