我正在使用Scichart for android编写实时图形应用程序。我一直在使用
FastLineRenderableSeries 作为我的数据系列的包装
但是我想知道 Android SciChart还有哪些其他技术才能最大限度地提高图形速度?
特别是当我使用 IXyDataSeries 并将x轴大小从10,000增加到100,000 pts时,我注意到性能下降。图表的速度一直很快,直到我向 IXyDataSeries 添加了大约90,000个点。
谢谢你们。我是stackoverflow的新手...更多的是mechE而不是CS人。
这是我的graphFragment类,它将UDP传感器数据作为字符串接收,拼接并将其添加到IXyDataSeries。
find
答案 0 :(得分:4)
我看了你的代码,我不确定我们是否可以做些什么。你的例子包含6个XyDataSeries,XRange从0到100000,这在屏幕上提供了60万个点,这对于HTC One上的实时示例非常有用。在SciChart性能演示中,您只能看到3个XyDataSeries实例的使用,这些实例允许在每个系列中绘制更多的点
披露:我是SciChart Android团队的首席开发人员
但我认为你可以通过在代码中添加一些优化来获得额外的FPS。实时图表中的主要问题是更新图表的代码 - 它经常被调用,因此如果您在更新期间创建一些对象而不保存它,那么这可能会导致问题,因为Android中的GC(GC传递速度很慢而且它当GC收集所有未使用的对象时,可以暂停所有应用程序的线程)。所以我建议你做下一步:
dataSeriesList.get(sensorSeriesNumber).append(xcounter, Double.parseDouble(num));
double xcounter = xCounters.get(sensorSeriesNumber);
xCounters.set(sensorSeriesNumber,xcounter);
我建议您使用接受IValues的append override。使用接受IValues的append可以避免在频繁附加大量数据时不必要的原始类型装箱/拆箱。
希望这会对你有所帮助。