android - 将 startMethodTracing 和 stopMethodTracing 与 ddms 结合使用

标签 android performance

我想衡量特定功能(及其调用的所有功能)的性能。为此,我似乎应该使用 Debug.startMethodTracing() 和 Debug.stopMethodTracing(),然后以某种方式启动 DDMS 跟踪。

但是,当我在 Eclipse 中打开 DDMS View 并单击 Start Method Profiling 按钮时,它会立即启动 - 而不是在 startMethodTracing() 执行时。结果是一个巨大的跟踪文件,其中包含大部分不相关的内容。很难缩小范围(我试过几次)。

显然 TraceView 已被弃用。无论如何我应该破解一种方法来使用它吗?好点了吗做我需要的事情的正确方法是什么?

谢谢。

最佳答案

如果您使用 Debug.startMethodTracing() 和 Debug.stopMethodTracing(),将在设备上创建一个 .trace 文件。它的确切位置打印在 logcat 中。

查找以“TRACE STARTED”和“TRACE STOPPED”开头的条目。然后,您可以使用 adb pull 从您的设备获取 .trace 文件,并在您选择的分析工具(例如 Eclipse 或某些第三方产品)中打开它

如果您使用上述调用,则无需在 Eclipse 中手动使用 DDMS。 .trace 文件本身可以简单地在 Eclipse 中使用 File -> Open 打开

关于android - 将 startMethodTracing 和 stopMethodTracing 与 ddms 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17507470/

相关文章:

java - Volley deliverResponse 未被调用

Android:如何在 "force closed"之后自动重启应用程序?

java - 我应该把不用的方法留在类里面吗?

c++ - OpenMP 临界区带来意想不到的性能提升

android - 在 kitkat Nexus7 中裁剪图像时图库已停止

java - 通过 jni 调用在 android 上显示 toast 消息

performance - 编译器完成的配置文件引导的优化是否会严重损害性能分析数据集未涵盖的情况?

c# - 性能:Vector2 与 x/y

Android Instrumented 测试在全部一起运行时失败

java - 在 64 位 Java 中使用 long 而不是 int 有好处吗