让我说我有两个可互换的代码片段,我想弄清楚哪一个需要较少的处理器时间来执行.我该怎么做?
为了得到非常粗略的估计,我可以将NSLog()调用放在我想要分析的代码的任何一侧,但看起来处理器非常繁忙可能会使结果产生偏差.
除非您的应用程序中已有这两段代码中的一条,并且您已经分析了应用程序的整体性能以确定现有代码是一个主要瓶颈,那么您所做的就是"过早优化".
Xcode包含一个名为" Shark " 的优秀分析器工具.对于某些版本,它可以在/ Developer/Applications中找到; 对于其他人来说,它位于"Performance Tools"子目录中.
Shark将告诉您应用程序在代码的每个部分中花费的确切时间(占总执行时间的百分比).使用像鲨鱼的工具的思路是遵循"80/20法则" -您的应用程序将花费其80%的时间运行其代码的20%,所以为了达到最佳效果,你应该花80%的你的时间来优化该同样20%.
因此,要直接回答您的问题,假设您已经运行Shark,并且您希望优化最顶层的瓶颈,只需将其替换为优化的代码并再次在Shark下运行您的应用程序.然后,比较替换代码中花费的总时间与原始时间的百分比.