在有效架构中使用armv7s有什么优势?

我正在开发支持iOS 4.3及更高版本的iOS应用程序。 由于一些框架,我不能归档为armv7s,所以我已经删除armv7s的支持。 会降低应用程序性能吗? 使用armv7的优点是什么?

令人惊讶的是,两种不同架构的机器代码没有太多的区别。 总的来说,armv7s的代码和armv7的代码看起来没有什么两样。 然而,有两个具体的差异引起了我的注意。

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

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

armv7和armv7s代码之间还有其他区别,但是与上面列出的整数除法和浮点运算变化相比,它们是微不足道的。 有多less应用程序将从armv7s构build中受益? 从检查生成的代码中很难说,但是如果你是一名开发人员,我认为值得花时间和精力来发布你的应用程序的构build版本,特别是如果你的应用程序使用了浮点操作。

我从这个链接得到了信息。请通过这个链接了解更多的细节。谢谢

armv7和armv7s之间的区别