标签: android-traceview

Android 基于跟踪和基于采样的方法分析之间的差异及其对报告的 CPU 时间的影响

Android Traceview 中基于跟踪和基于采样的分析方法有什么区别?我认为基于跟踪的更准确,但是,它似乎会扭曲实际的 cpu 时间,尤其是在有其他函数调用时。

例如,我想评估一个函数 A,它有两个实现,例如 A-1 和 A-2。

  1. A-1 多了一个函数调用,比如 A-1-1。
  2. A-2也有更多的函数调用,比如A-1-1,但是A-1-1里面也有一个函数调用,比如A-1-1-1。

现在我认为基于跟踪的分析将报告 A-2 的更高值,因为它需要跟踪一个额外的函数 A-1-1-1,而这个额外的 cpu 使用情况将在 A-2 的 cpu 时间中报告。我对吗 ?

那么问题就变成了,基于跟踪的方法在报告父函数的实际 cpu 时间时是否考虑了跟踪子方法所花费的 cpu 开销时间?

另一方面,基于采样的方法的问题在于它可能无法捕获非常轻量级的函数。如果我的函数需要 0.2 毫秒的 cpu 时间,并且采样间隔是 1 毫秒怎么办?我用它做了一些实验,但它无法捕获轻量级函数调用。关于它们的差异的任何想法或参考文档?

最后一个问题是,对于相对比较,哪一个更准确?

android adb android-traceview android-sdk-tools android-studio

5
推荐指数
1
解决办法
1223
查看次数

如果缓冲区填满,startMethodTracing()是否会返回错误?

Debug.startMethodTracing()默认情况下使用8MB"缓冲区大小".关于这个缓冲区,我有很多问题.

  1. 如果缓冲区填满容量,或者它是否只是停止记录,则抛出错误?
  2. 无论写入多少或几乎没有数据,缓冲区是否仍然是固定的8MB?
  3. 如果我手动指定bufferSize参数,那么单位是多少?字节?MB?
  4. 我尝试将缓冲区大小增加到20MB左右并退出应用程序.我需要记录大约20个实时秒的计算值.有没有办法记录超过20MB左右的数据?我假设它首先存储在内存中,否则将它存储到SD卡是没有问题的.

debugging android profiling android-traceview

4
推荐指数
1
解决办法
1013
查看次数

Android Studio 1.2 Beta 3中的Traceview在哪里?

Android Studio与Traceview(http://tools.android.com/tips/traceview)很好地集成在一起.但我最近更新到1.2 Beta 3,但找不到此按钮.你能帮我吗?

android ddms android-traceview android-studio

3
推荐指数
1
解决办法
1319
查看次数

Debug.startMethodTracing() 跟踪文件的目录

我正在尝试执行应用程序并使用 Debug.startMethodTracing() 计算启动时间,但我找不到跟踪文件。我已经添加了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>. 问题是我没有 SD 卡,所以我不知道 android studio 在哪里保存我的文件。

非常感谢任何建议。

预先感谢,Equinox

android android-traceview

2
推荐指数
1
解决办法
2578
查看次数

如何在Android中使用Traceview工具?

我想要我的应用程序的测试性能.我知道必须使用Traceview工具,但我不知道如何使用它.任何人都可以演示如何使用Traceview工具吗?

android android-traceview

1
推荐指数
2
解决办法
1万
查看次数