【问题标题】:Is CoreGraphics (much) slower on the new iPad?新 iPad 上的 CoreGraphics(很多)慢吗?
【发布时间】:2012-04-26 04:54:16
【问题描述】:

我刚拿到新的 iPad(3),目前正在测试使用 CoreGraphics 的高分辨率绘图应用程序版本。

在正常的 1024x768 模式下,iPad 的性能或多或少相似 - 快速绘图时只有轻微的延迟。

但是,当我尝试在高分辨率画布 (2048x1536) 上绘画时,应用程序变得异常缓慢和滞后。这是因为 CoreGraphics 主要由 CPU 计算(我相信它并没有比 iPad2 快多少)并且必须多做 4 倍的工作?

我基本上改变了我的绘图程序

UIGraphicsBeginImageContext(CGSizeMake(1024, 768));

UIGraphicsBeginImageContextWithOptions(CGSizeMake(1024, 768), NO, 0.0);

启用视网膜绘图,线条非常漂亮和清晰,图像以 2048x1536 格式保存。但如前所述,延迟和滞后使其无法用作绘图工具。

除了在 openGL 中重写我的应用程序(由于时间限制和早期在关键混合模式下的失败尝试,这不是一个选项),我可以做些什么来优化在新 iPad 上以视网膜模式运行的 CoreGraphics 应用程序?

【问题讨论】:

  • “更大的画布”是指 Retina 模式下的 iOS 模拟器,还是真正的 iPad?
  • 性能问题可能更多地与您使用 CoreGraphics 的方式有关,而不是与 CG 本身有关。在 iPad 上有一些使用 Retina 的真正快速的应用程序,我还没有看到巨大的影响。也许您可以发布您的绘图方式...没有它,将很难提供太多帮助。
  • 基本上我正在使用 kCGBlendModeDarken 将 CGContextStrokePaths 抚摸到 CGContextRef 中。如前所述,在标准分辨率下,该应用程序在 iPad3 上运行,我唯一要做的就是提高 CGcontext 的分辨率,交换我的问题中提到的行。我见过像 procreate 这样的基于 openGL 的应用程序真的很活泼,但我想我的问题是关于 CoreGraphics 在新 iPad 上的表现更笼统。
  • 发生了非常相似的事情,我在可缩放的画布上绘图。在以前的 iPad 上运行速度惊人,在新 iPad 中,如果我开始快速放大和缩小,应用程序有时会崩溃,有时屏幕会变黑,中间有一个小的活动指示器。真烦人。在这两种情况下,我都渲染了相同数量的路径。
  • 对我来说,CoreGraphics 总体上似乎很慢。我用它在网格视图上为图块绘制了一些 UI 元素,并在非视网膜 iPad 和 iPhone 上获得了可及的性能,但在视网膜 iPad 上的性能要差得多。每次遇到这个问题,我要么放弃并简化 UI,要么切换到 OpenGL。除非 Apple 修复框架,否则似乎没有其他选择。

标签: ios drawing core-graphics ipad-3


【解决方案1】:

如果该应用程序是由您制作的并且使您的 iPad 变慢,您应该通过作为 xcode 一部分的 Instruments 对其运行测试。我认为它可以帮助您找出问题所在。我不认为你的 iPad 有故障或类似的问题。

【讨论】:

  • +1 表示“运行仪器”。具体来说,我建议对它进行时间分析,看看是什么运行缓慢以及如何解决它(可能与您认为的原因不同)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
  • 2020-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多