在iOS6上添加armv7s切片是否值得?

16

我知道armv7s是为iPhone 5进行优化的,添加它会使我的代码在该设备上运行速度稍微快一点。

有人知道它们之间的区别吗?有没有基准测试之类的东西?

这样做的代价是应用程序的大小。添加armv7s后,我的估计应用程序大小从3.3MB增加到了5MB,需要下载的数据量增加了50%。

我在考虑,除非速度的提升很明显,否则可能不值得下载的成本,但我似乎找不到关于它的好处的讨论。


http://wanderingcoder.net/2010/07/19/ought-arm/ - Rui Peres
@JackyBoy 对 armv6armv7 有很好的概述,并在此链接页面 http://wanderingcoder.net/2011/09/25/compiling-armv7/ 上提供了一些支持 armv7 的重要理由。但是没有讨论 armv7armv7s 之间的区别。 - William Denniss
1
我喜欢你考虑到了这个。 - mackross
4个回答

8
如果您想利用A6 SoC的新功能VFPv4(用于更快的浮点计算),则值得添加armv7s支持。如果您查看下面的链接,可以了解更多细节,这些链接仍然是我最初研究时发现的最佳来源。我不知道有任何基准可以指出,但由于收益可能因应用程序对浮点计算的处理器限制程度而异,因此自己运行它们可能是一个好主意。

anandtech文章

苹果开发者论坛链接

相关SO文章


感谢您的信息。跟进问题:是否存在armv7s切片会改变库代码的执行方式(例如,表视图滚动),因为该代码驻留在操作系统中?即使我们自己不包含armv7s,我们是否仍然可以获得Apple的UIKit布局计算的VFPv4优势? - William Denniss
不用客气,您需要编译该代码片段以包含VFPv4指令以获得更好的效果。 - foggzilla

3
你正在开发什么类型的应用?armv7s 添加了 vfp4 和整数除法。因此,除非你的应用程序需要大量浮点运算(融合乘累加 ~ 信号处理)或者需要进行大量变量除以变量的运算(变量除以常数的运算在编译时高度优化),否则没有 armv7s 支持也可以正常运行。如果你的应用程序适用于最新的硬件,那么框架提供的所有软件,如布局等,都会自动使用这些改进。

1
我们的应用程序代码本身并不执行许多数学计算,虽然它是基于UIKit的,并且到处都有滚动视图和动画。您的意思是说,即使我们没有为应用程序包括armv7s片段,我们仍然可以在那些UIKit代码中获得VFP4的好处吗? - William Denniss

1
你可以做的最简单的事情,就是在 iPhone 5 上安装你的应用程序,并使用或不使用 'armv7s' 支持来了解性能差异。从我的经验来看,我可以看到每个 iPhone 型号的性能差异。我的建议是为你的应用程序添加 armv7s 支持,并在 '极端' 情况下进行测试,如果你能看到任何性能差异,就忘记 ipa 大小和其他事情吧。

1

我的建议是进行测量。ARMv7s的改进非常具体(硬件整数除法和VFPv4几乎是融合乘加),基准测试的改进可能适用于您的代码,也可能不适用,因此我认为在iPhone 5上计时您的应用程序并比较有或没有ARMv7s切片是最好的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接