【问题标题】:iPhone/iPod coregraphics speediPhone/iPod 核心图形速度
【发布时间】:2010-08-17 15:30:31
【问题描述】:

我正在为 iPhone/iPod 编写一个软件。我已经在模拟器上对其进行了测试,并且最近使用了我的第一代。 iPod 触摸。令我惊讶的是,代码在 iPod 设备上有点迟钝。

我的程序(使用核心图形)绘制一个大背景图像,几个其他图像,一个大径向渐变填充,使用透明度(alpha),使用几个圆形矩形剪辑,一个圆形剪辑,绘制一些单独旋转文字围绕一个圆圈,并旋转整个事物。该代码显然使用了几个嵌套的保存/恢复上下文。整个事情是动态的,需要即时计算很多事情。

我有一些问题想问更老练的 iPhone 程序员:

(1) 我应该期望从我所描述的程序中获得什么样的性能。听起来是不是真的应该飞起来,还是对于这类设备来说听起来相对复杂?

(2) 不同型号的 iPod/iPhone 的速度有何不同?

(3) 使用核心图形时,是否有任何已知的事情要避免?任何明显的优化(图像颜色深度/分辨率)?

【问题讨论】:

    标签: iphone performance core-graphics


    【解决方案1】:

    设备分为三类:ARM7(iPhone、iPod touch 第一代、iPhone 3G 和 iPod touch 第二代)、Cortex A8(iPhone 3GS、iPod touch 第三代)和 A4(iPad、iPhone 4)。同一类的设备应该具有相似的性能。

    CoreGraphics 通常很慢,因为它根本不使用 GPU。使用 CoreAnimation 将您的场景分成多个层,并且只重绘小提升所需的部分,或将您的绘图代码移植到 OpenGL ES 以获得最佳性能。

    【讨论】:

    • 您好,感谢您的回答。只是核心图形似乎是一个不错的 API……我知道 OpenGL,但我也知道我会有其他问题,比如圆边矩形/剪辑、绘制文本等。你知道真正的速度差异是什么不同代之间。设备?也许我只要忘记第一代就可以了。设备? -M
    • Cortex A8 设备的速度大约是 ARM7 设备的两倍; A4 比 Cortex A8 快大约 70%。不过,并非所有操作都获得相同的加速,并且在 iPad 和 iPhone 4 上,更高的分辨率会影响速度的提升。附:您应该投票或接受您认为有帮助的答案。
    • 只是一个附加组件,第一批设备(iPhone、iPhone3G、iPod1G/2G)使用带有 ARMv6 架构的 ARM11 处理器。 Cortex A8 设备实际上使用 ARMv7 架构。 A4 芯片内部实际上有一个(更高速度的)Cortex A8 芯片,以及一个 PowerVR GPU
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 2011-08-21
    相关资源
    最近更新 更多