Time Profiler可以用来测量时间的间隔,中断程序执行,跟踪每个线程的堆栈。
启动Time Profiler: Product - Profile
就会出现下面这个界面
点击Time Profiler,就会出现下面这个界面,然后点击红色的按钮,启动程序
启动Time Profiler后的界面如下:
对于选项面板中得各项配置选项:
1.Separate by Thread: 每个线程应该分开考虑。只有这样你才能揪出那些大量占用CPU的"重"线程
2.Invert Call Tree: 从上倒下跟踪堆栈,这意味着你看到的表中的方法,将已从第0帧开始取样,这通常你是想要的,只有这样你才能看到CPU中话费时间最深的方法.也就是说FuncA{FunB{FunC}} 勾选此项后堆栈以C->B-A 把调用层级最深的C显示在最外面
3.Hide Missing Symbols: 如果dSYM无法找到你的app或者系统框架的话,那么表中看不到方法名只能看到十六进制的数值,如果勾线此项可以隐藏这些符号,便于简化数据
4.Hide System Libraries: 勾选此项你会显示你app的代码,这是非常有用的. 因为通常你只关心cpu花在自己代码上的时间不是系统上的
5.Flatten Recursion: 递归函数, 每个堆栈跟踪一个条目
6.Top Functions: 一个函数花费的时间直接在该函数中的总和,以及在函数调用该函数所花费的时间的总时间。因此,如果函数A调用B,那么A的时间报告在A花费的时间加上B.花费的时间,这非常真有用,因为它可以让你每次下到调用堆栈时挑最大的时间数字,归零在你最耗时的方法。
通过上面详细面板,你可以看到每个方法所消耗的时间,以及占用总消耗时间的比例。
接下来,你可以通过双击某一个方法,然后你就会看到如下界面:
你可以从图中看到大部分时间都消耗在了[dataFormat dateFromString:timeStr];上了。
然后你可以点击详细面板右上角的Xcode图标进入Xcode的代码界面了。