2010-04-27 60 views

回答

6

你应该总是,总是在对你的特定应用程序的好坏做任何假设之前,对你的代码进行剖析。 Shark非常好,可以使用设备上的硬件性能计数器告诉你很多关于应用程序运行的低级细节。

在iPhone 3GS上,Thumb-2的编译不会产生旧Thumb指令集所做的性能损失(特别是它具有本机浮点)。有关其他详细信息,请参见this other question

您可以在其中生成具有多个指令集的二进制文件 ,但我不确定您是否可以对ARM6(iPhone 3GS之前版本)和针对ARM7(iPhone 3GS版)的“拇指确定” ,大概是iPad,不知道iPod touch) 编辑:这是可能的,感谢布拉德解释如何。

在很多情况下,优化大小也是优化速度的好方法:通过缩小代码大小,它可能更适合CPU的指令缓存,避免提取到内存。这更经常用于频繁执行紧密循环。

+0

+1分析建议。算法中即使适度的变化也会比编译器设置的调整提供更多的性能。 – zoul 2010-04-27 16:47:25

+1

通过选择“编译为Thumb”选项,并转到构建屏幕左下方的菜单并选择“添加构建设置条件”,可以构建Thumb条件。在新的条件下,选择ARMv6作为一种条件,关闭Thumb,然后在Thumb上为ARMv7添加一个新条件。 – 2010-04-27 16:51:45

0

第1条提示 - 了解您的存储类。在数组上执行类似indexOfObject的操作可能会非常昂贵,并且通常可以通过使用不同的存储类或组织不同的数据来避免这些情况。性能工具可以帮助您找到这些情况。

相关问题