所以,我一直在玩Core Plot(iOS,1.5版),看看我能在多大程度上融入我的应用程序。我正在iPad 3上测试它,这通常是我的图形基础设备。
而不是粘贴大量代码,这是情节配置:
因此,通常我的应用程序使用大约33-34 MB。如果显示一些图像,它可能会高达50 mb,但通常它将在33-34 mb范围内。但是,加载Core Plot会将内存跳转到大约63 MB。如果我启用缩放和捏合图形以缩放它或我只需拖动图形,内存使用量峰值达到〜143 mb然后再回到84mb。当我关闭图形时,内存下降到大约22mb,我认为这是因为其他缓存因内存压力而被清除。
此外,可能相关,捏合和拖动图表非常慢。也许平均2-3 FPS下降到2 SPF(每帧秒数......严重)。
看起来Core Plot占用了大量的内存并且速度非常慢。
我错过了什么,或者这只是Core Plot的方式?除非我能加快速度并减少使用内存,否则我无法在生产中使用Core Plot。
更新
我用仪器来描述我的应用程序。除了所有内存增益都在Core Plot对象中(或从它们派生)之外,这里没有什么可说的。时间分析器显示,当我调整大小或移动绘图时,大部分时间都花费在源自drawInContext:
方法的各种核心绘图渲染方法之一。具有讽刺意味的是,该方法的第一行是self.useFastRendering = YES;
。
我将补充一点,情节几乎全屏。我有几个其他控件来编辑绘图字段,图表类型等,但就是这样。
说实话,我有点希望我会错过与表演有关的某种财产,但事实似乎并非如此。 Core Plot可能适用于静态图,但它在交互性和性能方面落后。
我花了一些时间查看Shinobi Controls并查看他们的iOS演示。这正是那种交互性和在图表中我想要的表现。但我对在我的应用程序中包含昂贵,封闭的第三方代码感到谨慎......
我可能会花时间手工制作我的图表。
答案 0 :(得分:0)
不幸的是,核心图是一个非常慢的库,在内存和CPU使用率失控之前只能处理几百个数据点。
还有其他图表组件能够更有效地处理大数据。有关详细信息,请查看https://stackoverflow.com/a/45589678/303612