我想知道人们为了编译他们的iPhone应用程序正在做什么来优化它们以获得最大速度而不是尺寸或权衡速度与尺寸.
在对特定应用程序的好坏进行任何一揽子假设之前,您应始终始终对代码进行概要分析.Shark非常好用,可以使用设备上的硬件性能计数器告诉你许多有关应用程序运行方式的低级细节.
在iPhone 3GS上,为Thumb-2进行编译不会导致较旧的Thumb指令集所带来的性能损失(特别是它具有本机浮点).有关其他详细信息,请参阅此其他问题.
您可以生成包含多个指令集的二进制文件,但我不确定您是否可以为ARM6(iPhone 3GS之前)说"没有拇指"而对ARM7说"拇指OK"(iPhone 3GS,可能是iPad,不要不知道iPod的触摸情况.编辑:这是可能的,感谢布拉德解释如何.
在许多情况下,优化大小也是优化速度的好方法:通过压缩代码大小,它可以更好地适应CPU的指令高速缓存,从而避免获取内存.这通常会经常执行紧密循环.