在编译iOS应用程序时使用armv7会对性能产生什么影响?

时间:2012-01-07 19:41:45

标签: ios ios5 foursquare armv7 armv6

我们的应用程序使用foursquare API,我对如何使用armv7架构进行编译感兴趣:

  • 位置准确度
  • 速度(浮点计算)

使用armv6架构进行编译是否在位置精度或浮点计算速度方面提供了相对的好处?

有人测试过这个以衡量实际差异吗?或者它太小而不具有任何后果?

我想知道使用混合armv6 / armv7构建来改善这两个性能元素是否值得,即使它导致app文件大小名义上的增加?

感谢。

2 个答案:

答案 0 :(得分:4)

  

使用armv6架构进行编译是否可以提供任何相对的好处   定位精度或浮点计算速度的术语?

我认为这里更大的问题是;你是否关心你的应用程序是否在旧的基于ARMv6的硬件上运行?因为创建仅限ARMv7的版本会限制应用支持的设备数量。

  

或者它太小而不具有任何后果?

一切都取决于您的情况......但是,根据我的经验,基于ARMv6的设备与基于ARMv7的设备的时钟速度比编译器在两者之​​间产生的任何优化差异更为重要。< / p>

  

我想知道使用混合armv6 / armv7构建是否值得

这是默认设置 - 除非你有一个特定的理由不为两者构建 - 你应该 - 它将保证在基于ARMv6和ARMv7的设备上获得最佳结果 - 如果你想要最大的兼容性,唯一的选择就是构建for仅限ARMv6 - 这将保证如果编译器可以为ARMv7优化某些地方,那么您将失去这些优化。

答案 1 :(得分:1)

如果在构建时同时启用了ARMv6和ARMv7,并且不限于仅为活动体系结构构建 - 最终应用程序将具有2个二进制映像。一个用于6,第二个用于7.换句话说 - 您的选择是:仅为V7构建并且根本不支持V6,或者为6和7构建并提供通用二进制。最后,设备将使用适当的二进制图像。 不确定难以选择......

我个人更喜欢支持尽可能多的设备,并且不同意Apple对Xcode 4.2的更改,推动开发人员放弃ARMv6设备支持。