【问题标题】:Core Plot IPad performance issueCore Plot iPad 性能问题
【发布时间】:2013-09-10 07:55:54
【问题描述】:

在我的应用程序中,我在带有分页的滚动视图上获得了核心绘图条形图,在 iPhone 上一切正常,您在不同页面之间进行分页,其中之一是具有自己的触摸手势和属性的绘图。 当我在 iPad 上运行相同的代码时,问题就开始了。情节变得缓慢而滞后,所有触摸手势都需要花费大量时间来响应,整个滚动页面变得沉重而缓慢。 图表本身包含 100 点左右(不是那么大)。 我在某处读到过,IPhone 和 iPad 之间绘图空间的变化使性能发生了这些变化,因为 iPad 渲染的图形是 4 倍。以前有人遇到过这个问题吗?我可以做些什么来提高 iPad 上的性能而不受限制或丢失预制件数据?

【问题讨论】:

  • 在不了解您的应用程序的情况下很难说。图表有多大(以点为单位)?这是在设备(哪一个?)还是模拟器上?您的应用使用什么手势以及它们对图表做了什么?
  • 图表是屏幕的 3/4(在 iPhone 和 iPad 上),在模拟器和 iPad 2 上速度很慢(未在其他 iPad 设备上检查)。我的应用程序使用 scrollViewDelegate 中的 scrollerDidScroll 和 scrollView 触摸手势。加上核心情节中的 shouldHandlePointingDeviceDraggedEvent 和 shouldScaleBy
  • 我在我的应用程序上也遇到过这种行为,目前我已经通过限制重新绘制图形的次数来解决这个问题......
  • 这可以快速解决,但必须有更好的解决方案。

标签: ios ipad core-plot


【解决方案1】:

不幸的是,Core plot 是一个非常慢的库,只能处理几百个数据点(在某些情况下甚至更少)。

我在这里写了一个答案,描述了performance comparison between iOS chart components。测试的图表之一是 core-plot,它无法进行第一次测试!

【讨论】:

    【解决方案2】:

    在不了解您应用的具体细节的情况下,以下是一些一般性能提示:

    1. 将所有不需要的线条样式和填充设置为nil,而不是透明颜色。

    2. 尽可能使用纯色填充,而不是渐变或图像。

    3. 尽可能减少轴标签、刻度线和网格线的数量。或许完全消除次要刻度线和网格线(将相应的线型设置为nil)。

    4. 仅当绘图数据的重要部分发生更改时才调用 -reloadData。尽可能使用插入和删除方法。请参阅 绘图库 示例应用中的“实时绘图”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多