如果有什么优势...在文档中找不到任何结论性的东西。
显然armv7适用于新版本的iOS ...速度更快吗?较小?X更好?
Answers:
较大的差异之一是armv6架构对双精度浮点算术具有硬件支持,而armv7仅提供对双精度浮点算术的传统软件支持。
作为补偿,armv7体系结构具有一个“ NEON”单元,该单元为单精度浮点算术提供了惊人的快速硬件支持。
如果您要执行涉及浮点算术的任何事情,则无论是单精度还是双精度都需要考虑这一点。如果您以双精度执行此操作,但不一定需要该精度,则可以通过使用单精度来提高armv7设备的性能。
苹果在今年的WWDC会议中介绍了armv6和armv7之间的许多差异,并介绍了Accelerate框架。这些视频仍应在iTunes上可用(截至10年7月)。
较旧的iOS设备(iPhone,iPhone 3G,第一代和第二代iPod touch)具有仅支持armv6指令集的CPU。iPhone 3GS(以及iPad和第三代iPod touch)具有更新的处理器,该处理器还支持armv7指令集。通常,在这些较新的处理器上,armv7速度更快,建议您至少在以后的应用程序中包括armv7构建(在仅限iPad的应用程序中,您可能只为armv7构建)。
正如Jasarien指出的那样,指令集之间最大差异的区域是浮点运算。在armv6上,倾向于使用减少的Thumb指令集构建应用程序以生成较小的二进制文件,但是Thumb浮点性能非常糟糕。因此,如果需要更快的浮点计算,则需要禁用Thumb。在armv7上,Thumb-2指令集不再具有此限制,因此Apple建议您几乎始终使用它进行编译。
您可以将Thumb构建设置设为条件设置,以便在旧设备和新设备上均处于关闭状态。为此,请转到您的Xcode构建设置,然后选择“编译为Thumb”选项。转到屏幕左下方的菜单,然后选择“添加构建设置条件”选项。在新的构建设置条件中,为体系结构选择ARMv6,为其关闭Thumb,添加另一个条件,为其体系结构选择ARMv7,然后为其启用Thumb。
根据Stephen Canon在这里的回答,armv6的硬件支持单精度和双精度浮点运算。我发现单精度算术在该平台上的性能稍好一些,这可能是由于更多的操作适合缓存。在armv7上,NEON SIMD浮点单元仅适用于单精度操作,因此单精度和双精度操作之间的性能可能存在巨大差异。
在这个问题上可能感兴趣的其他问题包括:
如果要使您的应用程序在iPad和所有iPhone / iPod toch型号上运行,则必须同时编译。较旧的iOS设备使用arm6,而新设备则使用arm7。
不编译的唯一原因是减小应用程序的大小,因为它仅需要代码的一个编译版本。但是,除非您有一个非常大的代码库,否则该文件大小的差异将很小。
v
。