在有效架构中使用armv7s支持的优势是什么?

时间:2012-12-11 07:33:58

标签: iphone ios armv7 archiving

我正在开发支持iOS 4.3及更高版本的iOS应用。由于某些框架,我无法将其存档为armv7s,因此我删除了armv7s支持。它会降低应用程序性能吗? 使用armv7s有什么好处?

1 个答案:

答案 0 :(得分:23)

令人惊讶的是,为两种不同的架构生成的机器代码没有太大差异;总的来说,armv7s代码与armv7代码没什么不同。但是,有两个具体的差异引起了我的注意。

第一个区别影响整数除法。 armv7s架构有两个新的整数除法指令,这些指令在armv7架构中不存在。这些整数除法指令作为armv7上的函数实现,其至少比armv7上的等效指令慢一个数量级。整数除法在应用程序中很常见(它在Geekbench中被称为超过一百个),因此这些新指令应该可以显着提高所有应用程序的性能。

第二个区别影响浮点运算。 Xcode对armv7使用不同的浮点算术指令而不是armv7。 Xcode用于armv7s的指令将几个操作组合成一个指令,这使得它们比Xcode用于armv7的几个独立指令更有效。令人惊讶的是,这些组合浮点指令存在于armv7架构中,但未被Xcode使用。目前还不清楚为什么会这样。对于armv7s,这些组合指令代表了所有浮点指令的一小部分,因此虽然它们可能提供优势,但很难确定它们将产生多大的影响。

armv7和armv7s代码之间还存在其他差异,但与上面概述的整数除法和浮点算术更改相比,它们是次要的。使用armv7s可以使应用程序受益多少?通过检查生成的代码很难说,但如果您是开发人员,我认为值得花费时间和精力来发布应用程序的armv7s构建,特别是如果您的应用程序使用浮点运算。

我从这个链接获得了信息。请通过此链接了解更多详情。谢谢

Difference between armv7 and armv7s