【发布时间】:2014-01-28 14:37:33
【问题描述】:
我有兴趣了解 CPU 在运行我的应用程序时的每次运行时间。
我知道 tracedump 方法分析或使用 ddms,但它似乎大大减慢了应用程序的速度,使分析不准确。
是否有任何工具,例如每隔几毫秒对应用程序的执行进行一次采样,以便我们可以在没有太多性能开销的情况下分析我们的应用程序?
【问题讨论】:
-
分析应该相对准确。 IOW,如果方法 A 在方法跟踪打开时比方法 B 花费的时间多 33%,则在方法跟踪关闭时方法 A 应该比方法 B 多花费约 33% 的时间。一个值得注意的例外是
native方法,因为方法跟踪不会下降到本机代码中,因此相比之下,方法跟踪会使 Dalvik 代码看起来更糟糕。 -
@CommonsWare 如果方法 A 包含大部分没有调用方法的迭代循环但方法 B 包含深度方法调用,它仍然有效吗?因为当方法分析处于活动状态时,B 可能会遭受大量分析开销,因此执行 B 的总时间会比 A 多得多。
-
这部分取决于分析器的实现。