Objective c 我是否正确使用时间剖面仪?

Objective c 我是否正确使用时间剖面仪?,objective-c,ios,instruments,Objective C,Ios,Instruments,我正在为iPad开发一个绘图应用程序。我试图加快我的绘图速度,所以我用时间剖面仪进行了一些测试。然而,我不是做错了什么,就是时间分析器在这种情况下没有任何帮助 我要寻找的基本上是一行一行地执行我绘图的代码。我得到的是下面。基本上,时间分析器说“你花了很多时间画画”。我的回答是“哦,天哪!”。我是否正确使用了探查器,或者是否有办法让它逐行显示执行时间(这比当前输出有用得多) 编辑:上面,你可以看到更多我想要的。逐行执行时间。这不是我的代码,只是我希望/期望时间分析器如何工作的一个示例 Edit

我正在为iPad开发一个绘图应用程序。我试图加快我的绘图速度,所以我用时间剖面仪进行了一些测试。然而,我不是做错了什么,就是时间分析器在这种情况下没有任何帮助

我要寻找的基本上是一行一行地执行我绘图的代码。我得到的是下面。基本上,时间分析器说“你花了很多时间画画”。我的回答是“哦,天哪!”。我是否正确使用了探查器,或者是否有办法让它逐行显示执行时间(这比当前输出有用得多)

编辑:上面,你可以看到更多我想要的。逐行执行时间。这不是我的代码,只是我希望/期望时间分析器如何工作的一个示例


Edit2:在模拟器上运行时,您是否只能看到每个方法的执行时间?我只是尝试在模拟器上进行分析,结果正是我所期望的。然而,我真的希望使用该设备进行更准确的分析:(

我相信,使用时间分析器无法实现这一点,因为它收集了大量样本并将它们统一起来,以显示您花费时间最多的地方


您可以使用一些“原始”dtrace脚本来解决此任务。或者,您可以基于
mach\u absolute\u time
编写采样代码(可能有助于以后将值转换为更有意义的数据).

要获得所需的逐行执行时间,必须双击在调用树中编写的函数。在屏幕截图中,双击了苹果编写的UIView方法。您得到反汇编是因为它是苹果的代码,而不是您的代码


如果您想关注调用树中的代码,请选中“隐藏系统库”复选框,该复选框位于您在屏幕截图中选中的“仅显示Obj-C”复选框的正上方。隐藏系统库可以更轻松地在调用树中查找代码,这将帮助您获得逐行执行时间。

时间分析工具可以es在设备上的行为似乎与在模拟器中的行为不同。模拟器版本允许我查看逐行执行时间,在设备上评测时,我只获得上面的输出,这远没有那么有用。

使用马赫绝对时间的想法很好。我将记住这一点作为备份。但是,正如你在我的上一篇I在上面的mage中,我知道可以获得逐行运行时间,但由于某些原因,在我的特定情况下可能无法获得。尝试选择您的方法?它应该在堆栈跟踪的右窗格中的某个位置可用。这也是我所想的,但我在窗格中的任何位置都看不到它…shrugth当我检查e[UIView drawInLayer]方法占用了所有时间。您的绘图代码使用的是什么方法或函数?大部分都位于-(void)drawInContext:(CGContextRef)context,它从我的一个视图的drawRect方法中传递一个上下文。为了澄清,我包含的第三个图像不是我的代码,它只是我正在寻找的执行时间显示类型。如果我选中“隐藏系统库”,但保持选中Show Obj-C Only(仅显示Obj-C)。调用树中也没有显示任何内容。更新了我的问题。在分析模拟器时,我能够逐个方法查看,但这在设备上是否可行?我通常不会选中Show Obj-C Only(仅显示Obj-C)复选框。如果取消选中Show Obj-C Only(仅显示Obj-C)复选框,调用树中是否会显示某些内容?我无法验证y如果您可以在设备上获得逐行结果,因为Xcode 4.4不允许我在运行iOS 5.1的设备上使用时间分析器工具进行评测。是的,但是我没有看到任何方法调用,就像我在评测模拟器时看到的那样。您可以尝试选择“隐藏缺少的符号”复选框,而不是“隐藏系统库”复选框我想看看这是否会改变情况。