2

我有一个正在为 iPad 开发的绘图应用程序。我正在尝试加快绘图速度,因此我正在使用时间分析仪进行一些测试。但是,我要么做错了什么,要么时间分析器在这种情况下不会有帮助。

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

时间剖析工具截图

编辑:在上面,您可以看到更多我正在寻找的内容。逐行执行时间。那不是我的代码,只是我希望/期望时间分析器如何工作的一个例子。

Edit2:在模拟器上运行时,您只能按方法查看执行时间吗?我刚刚尝试在模拟器上进行分析,输出正是我所期望的。但是,我真的希望使用该设备进行更准确的分析:(

4

3 回答 3

2

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

于 2012-08-29T15:30:31.407 回答
1

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

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

于 2012-08-20T15:51:53.260 回答
0

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

如果您想专注于调用树中的代码,请选中 Hide System Libraries 复选框,该复选框位于您在屏幕截图中选择的 Show Obj-C Only 复选框的上方。隐藏系统库可以更容易地在调用树中找到您的代码,这将帮助您逐行了解执行时间。

于 2012-08-20T18:26:09.787 回答