我有一个我正在为iPad工作的绘图应用程序。我正在努力加快绘图速度,因此我使用时间分析仪器进行了一些测试。但是,我要么做错了,要么时间分析器在这种情况下不会有用。
我正在寻找的基本上是执行绘图的代码的逐行执行时间。我得到的是下面的。基本上,时间分析器说“你花了很多时间画画”。我的回答是“哦,哈利!?”。我是否正确使用了探查器,或者是否有办法让它逐行显示(这比当前输出更有用)?
编辑:上面,你可以看到更多我正在寻找的东西。逐行执行时间。这不是我的代码,只是我希望/期望时间分析器工作的一个例子。
Edit2:在模拟器上运行时,您是否只能按方法执行时间查看方法?我只是尝试在模拟器上进行分析,输出正是我所期望的。但是,我真的希望使用该设备进行更准确的分析:(
答案 0 :(得分:2)
时间分析工具在设备上的行为似乎与模拟器中的相同。模拟器版本允许我逐行查看执行时间,在设备上进行分析时,我只获得上面的输出,这远没那么有用。
答案 1 :(得分:1)
我相信,你无法通过时间分析器实现这一点,因为它收集了大量样本并将它们统一起来显示,你花费的时间最多。
您可以使用一些“原始” dtrace 脚本来完成此任务的解决方案。或者,您可以编写基于mach_absolute_time
的采样代码(this QA可能有助于稍后将值转换为更有意义的数据)。
答案 2 :(得分:0)
要获得所需的逐行执行时间,必须双击在调用树中编写的函数。在你的截图中,你双击了一个UIView方法,Apple写道。你正在进行反汇编,因为它是Apple的代码,而不是你的代码。
如果您想关注调用树中的代码,请选中隐藏系统库复选框,该复选框位于屏幕截图中选中的仅显示Obj-C复选框的上方。隐藏系统库可以更容易地在调用树中找到您的代码,这将帮助您逐行执行。