Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不降低执行速度的情况下分析Android应用程序的执行情况?_Android_Profiling - Fatal编程技术网

如何在不降低执行速度的情况下分析Android应用程序的执行情况?

如何在不降低执行速度的情况下分析Android应用程序的执行情况?,android,profiling,Android,Profiling,我感兴趣的是,在运行我的应用程序的每一段时间里,cpu都在做些什么 我知道tracedump方法评测或使用ddms,但它似乎大大减慢了应用程序的速度,使得评测不准确 有没有像每隔几毫秒对应用程序执行一次采样这样的工具,这样我们就可以在没有太多性能开销的情况下分析我们的应用程序?分析工具不计算它们自己花费的时间。因此,唯一的不准确之处是在代码和工具代码之间传输控制时的微小开销。分析应该相对准确。这样,如果方法A在方法跟踪打开时比方法B多花33%的时间,那么方法A在方法跟踪关闭时比方法B多花33%的

我感兴趣的是,在运行我的应用程序的每一段时间里,cpu都在做些什么

我知道tracedump方法评测或使用ddms,但它似乎大大减慢了应用程序的速度,使得评测不准确


有没有像每隔几毫秒对应用程序执行一次采样这样的工具,这样我们就可以在没有太多性能开销的情况下分析我们的应用程序?

分析工具不计算它们自己花费的时间。因此,唯一的不准确之处是在代码和工具代码之间传输控制时的微小开销。

分析应该相对准确。这样,如果方法A在方法跟踪打开时比方法B多花33%的时间,那么方法A在方法跟踪关闭时比方法B多花33%的时间。一个值得注意的例外是
native
方法,因为方法跟踪不会下降到本机代码中,因此方法跟踪会使Dalvik代码看起来更糟。@如果方法A包含大部分迭代循环而不调用方法,但方法B包含深层方法调用,那么Commonware是否仍然有效?由于B可能会遭受大量的评测开销,因此当方法评测处于活动状态时,执行B的总时间将远远超过a。这在一定程度上取决于分析器的实现。