M. *_*yan 67 iphone xcode objective-c armv7 ios
如果有任何优势......在文档中找不到任何结论.
显然armv7适用于较新版本的iOS ...它更快吗?小吗?X更好?
Bra*_*son 78
较旧的iOS设备(iPhone,iPhone 3G,第一代和第二代iPod touch)的CPU仅支持armv6指令集.iPhone 3G S(以及iPad和第三代iPod touch)有一个更新的处理器,也支持armv7指令集.一般来说,armv7在这些较新的处理器上速度更快,建议您至少在应用程序中包含一个armv7版本(在仅限iPad的应用程序中,您可能只需为armv7构建).
正如Jasarien指出的那样,指令集之间最大差异的区域是浮点运算.在armv6上,应用程序倾向于使用缩减的Thumb指令集构建,以生成更小的二进制文件,但Thumb浮点性能非常糟糕.因此,您需要禁用Thumb是否需要更快的浮点计算.在armv7上,Thumb-2指令集不再具有此限制,因此Apple建议您几乎一直使用它进行编译.
您可以使Thumb构建设置成为有条件的,以便旧设备和新设备关闭.为此,请转到Xcode构建设置并选择Compile for Thumb选项.转到屏幕左下角的菜单,然后选择添加构建设置条件选项.在新的构建设置条件中,为架构选择ARMv6,为其关闭Thumb,添加另一个条件,为其架构选择ARMv7,并为其启用Thumb.
据斯蒂芬佳能的答案在这里,无论是单精度和双精度浮点运算在硬件ARMv6的支持.我发现单精度算法在这个平台上表现稍好一些,可能是由于更多的操作适合缓存.在armv7上,NEON SIMD浮点单元仅适用于单精度操作,因此单精度和双精度操作之间的性能差异很大.
可能对此主题感兴趣的其他问题包括:
Jas*_*ien 54
其中一个较大的区别是armv6架构具有双精度浮点运算的硬件支持,而armv7仅为双精度浮点运算提供传统软件支持.
为了补偿,armv7架构具有"NEON"单元,为单精度浮点运算提供了快速的硬件支持.
如果您正在执行涉及浮点运算的任何事情,无论您是以单精度还是双精度执行此操作,都需要考虑这一点.如果你是以双精度进行,但不一定需要那么精确,那么你可以通过使用单精度来显着提高armv7设备的性能.
Apple涵盖了armv6和armv7之间的许多差异,以及今年WWDC会议中对Accelerate框架的介绍.这些视频仍应在iTunes上提供(截至2010年7月).
| 归档时间: |
|
| 查看次数: |
43224 次 |
| 最近记录: |