Aks*_*her 23
令人惊讶的是,为两种不同的架构生成的机器代码没有太大差异; 总的来说,armv7s代码与armv7代码没什么不同.但是,有两个具体的差异引起了我的注意.
第一个差异影响整数除法.armv7s架构有两个新的整数除法指令,这些指令在armv7架构中不存在.这些整数除法指令作为armv7上的函数实现,其至少比armv7上的等效指令慢一个数量级.整数除法在应用程序中很常见(它在Geekbench中被称为超过一百个),因此这些新指令应该为所有应用程序提供显着的性能提升.
第二个区别影响浮点运算.Xcode对armv7使用不同的浮点算术指令而不是armv7.Xcode用于armv7s的指令将几个操作组合成一个指令,这使得它们比Xcode用于armv7的几个独立指令更有效.令人惊讶的是,这些组合浮点指令存在于armv7架构中,但未被Xcode使用.目前还不清楚为什么会这样.对于armv7s,这些组合指令代表了所有浮点指令的一小部分,因此虽然它们可能提供优势,但很难确定它们将产生多大的影响.
armv7和armv7s代码之间还存在其他差异,但与上面概述的整数除法和浮点算术更改相比,它们是次要的.使用armv7s可以使应用程序受益多少?通过检查生成的代码很难说,但如果您是开发人员,我认为值得花费时间和精力来发布应用程序的armv7s构建,特别是如果您的应用程序使用浮点运算.
我从这个链接获得了信息.请通过此链接了解更多详情.谢谢