在有效体系结构中使用armv7支持的优势是什么



我正在开发一款支持iOS 4.3及以上版本的iOS应用程序。由于一些框架的原因,我无法将其存档到armv7,所以我删除了对armv7的支持。它会降低应用程序性能吗?使用armv7的优势是什么?

令人惊讶的是,为两种不同的体系结构生成的机器代码没有太大差异;总的来说,armv7s代码看起来与armv7代码没有太大区别。然而,有两个具体的差异引起了我的注意。

第一个差异影响整数除法。armv7s体系结构有两个新的整数除法指令,这两个指令在armv7体系结构中不存在。这些整数除法指令被实现为armv7上的函数,该函数比armv7s上的等效指令慢至少一个数量级。整数除法在应用程序中很常见(它在Geekbench中有一百多个地方被调用),因此这些新指令应该会显著提高所有应用程序的性能。

第二个差异影响浮点运算。Xcode对armv7使用的浮点运算指令与armv7不同。Xcode用于armv7的指令将几个操作组合成一条指令,这将使它们比Xcode用于armv7的几个独立指令更有效率。令人惊讶的是,这些组合的浮点指令存在于armv7体系结构中,但Xcode没有使用。目前尚不清楚为什么会出现这种情况。对于armv7,这些组合指令在所有浮点指令中只占一小部分,因此,尽管它们可能会提供优势,但很难确定它们会产生多大影响。

armv7和armv7s代码之间还有其他差异,但与上面概述的整数除法和浮点算术更改相比,这些差异很小。构建armv7会给应用程序带来多少好处?仅仅从检查生成的代码很难说,但如果你是一名开发人员,我认为花时间和精力发布应用程序的armv7s构建是值得的,尤其是当你的应用程序使用浮点运算时。

我从这个链接得到了信息。请浏览此链接了解更多详细信息。谢谢

armv7和armv7s 之间的差异

最新更新