问题标签 [android-traceview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
257 浏览

android - DDMS 跟踪中的奇怪间隙

我正在使用 DDMS 跟踪视图分析配置文件信息。我注意到我的许多较慢的功能似乎在它们中间有奇怪的间隙(见图)......好像他们决定在中途休息并重新开始。分析数据是使用“基于跟踪的分析”(而不是基于样本)收集的,因此应该不会错过任何函数调用。在下面的文本信息中,您可以看到它表示 100% 的时间是由“自己”占用的,因此无法通过调用其他函数来解释差距。如果我单击代表函数的颜色块,则跟踪视图将函数的两端与顶部的条连接起来,但我不知道这意味着什么。

我正在一台配备四核处理器的 xperia Z 手机上测试所有这些。

在此处输入图像描述

0 投票
1 回答
93 浏览

android - Android:使用 TraceView 分析 Nexus 7 中的代码性能

我正在尝试使用android 教程中提到的traceview来分析我的代码。由于 nexus 7 选项卡没有外部 sd 卡,因此我无法使用命令提取跟踪文件。adb pull <filename>.trace

所以我的问题是如何在不支持外部存储卡的设备(如nexus 7)中进行分析?

0 投票
1 回答
928 浏览

android - 使用方法跟踪测量活动开始时间不准确?

根据 Logcat 的说法,我的活动(使用相机)开始得很慢:

所以我决定使用方法分析来查看问题出在哪里(这是启动缓慢的 Activity 的地方):

并在 TakePhotoActivity 的 onResume 中调用:

但是,令我惊讶的是,Traceview 只显示了 260 毫秒的方法调用,所以我在某处损失了超过 1 秒!

我如何知道这段时间发生了什么?

0 投票
0 回答
672 浏览

android - Nexus 5 + Android L:执行上午配置文件开始从应用程序产生 app_process 错误

我尝试在我的 Android 应用程序中执行“am profile start”来分析另一个 PID。从亚行一切正常,例如: adb shell am profile 5397 start /sdcard/my.app.trace 工作。但尝试执行“am”或“pm”,或任何执行 app_process 的操作都会出现以下错误:

/system/bin/am[8]:app_process:无法执行:权限被拒绝

它也不适用于终端仿真器,同样的错误。如果我使用 root 执行它(无论是在 adb 上还是在设备上),就会出现像这里这样的分段错误:Segmentation Fault execution pm on android。那里的答案并没有解决我使用 root 访问“am”的问题,但是我想解决这个问题以在没有 root 的情况下运行命令。在我无法解决的设备上执行 app_process 时出现问题。我正在使用带有 Android L 预览版的 Nexus 5。使用我老的摩托罗拉里程碑,命令在终端仿真器上运行。这是仅尝试在我的应用程序中执行“am”命令的代码,它应该列出该命令的选项,但会产生上述错误。

0 投票
1 回答
1858 浏览

android - 为什么我的 Android 应用程序在后台使用 CPU?

几个月来,我一直在编写一个 Android 应用程序。它尚未发布,但已安装在我的设备中。

今天我收到了来自 Battery Doctor 应用程序的通知,说我的应用程序消耗了大量 CPU,尽管我从昨天起就没有使用它。

所以基本上我的应用程序在后台运行,它不应该做任何事情,但它正在使用 CPU。

所以我打开 TraceView 并在后台对我的应用程序进行了一些分析(在此分析期间我根本没有与我的应用程序交互),这就是我得到的:http: //i.imgur.com/ PYg6twX.png

我在这里很无知。从我的实际代码中我根本看不到任何功能,所以我什至不知道从哪里开始寻找。而且我真的不明白屏幕截图中的这些功能是做什么的,或者它们为什么会出现在那里。

所以我有几个问题,我非常感谢一些帮助:

  • 我的分析结果是预期的吗?或者如果我不与我的应用程序交互,这些功能是否不应该显示?
  • 如果这些功能不应该出现,谁能猜出我的应用程序可能出了什么问题?admob可能是原因吗?

非常感谢!

0 投票
1 回答
133 浏览

android - 为什么 joda 时间会在占用这么多内存的时间之间产生差异

我有以下功能:

我试图获得两个日期之间的小时数差异。

这是我的跟踪视图:

在此处输入图像描述

该功能需要大量的时间和资源来执行 - 我在这里想念什么。由于这个函数占用了大量的 CPU 时间,我的服务在 5.0.1 上被终止了。

编辑:

深入挖掘,我发现 LocalDate init 占用了 99% 的 CPU 时间。有没有办法可以避免这种情况并提供预先计算的日期?

编辑 2:实施 Joda 2.6 后:

在此处输入图像描述

0 投票
1 回答
248 浏览

android - 如何理解 Android TraceView 工具中的“Calls+RecurCalls/Total”

在许多文章中,Calls+Recur Calls/Total 被简单地解释为“呼叫次数和重复呼叫次数”。是的,它可以清楚地解释像“1 + 0”这样的值的含义,但我无法了解像“1/441”这样的值的含义。见附件

在此处输入图像描述

0 投票
1 回答
1324 浏览

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

Android Studio 很好地与 Traceview ( http://tools.android.com/tips/traceview ) 集成。但是我最近更新到 1.2 Beta 3 并且找不到这个按钮。你能帮我吗?

0 投票
3 回答
2028 浏览

android - Debug.startMethodTracing() 跟踪文件目录

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

非常感谢任何建议。

提前感谢,春分

0 投票
0 回答
156 浏览

android - Traceview Android 5 支持“基于方法/跟踪的分析”还是现在只是基于采样的分析器?

在 Android 版本 <= 4.4 中,Traceview 按其执行顺序显示应用程序执行的所有功能。它是使用Profile.cc提供的 API 实现的。基本思想是,每当 dvm 进入/退出时,函数探查器都会记录该函数。这称为基于跟踪 (/method) 的分析。

但是,在 Android 版本 >= 5 代码库中,我无法找到基于跟踪/方法的分析器 (Profile.cc) 的实现。但是 ART 中有一个Profiler.cc,它基本上是一个基于采样的分析器。

谷歌文档说:

“虽然 Traceview 提供了有用的信息,但它在 Dalvik 上的结果受到了每个方法调用开销的影响,并且该工具的使用显着影响了运行时性能。

ART 添加了对没有这些限制的专用采样分析器的支持。这可以更准确地查看应用程序执行情况,而不会显着减慢。在 KitKat 版本中,Dalvik 的 Traceview 中添加了采样支持。"

所以我的问题是:

  1. Android 版本 5 是否支持基于 Trace (/method) 的分析?如果是,实现代码在哪里?

  2. 如果 ART 仅使用基于采样的分析,那么如何记录 Android 应用程序执行的每个方法?基于采样的分析器可能会错过方法执行,对吗?

提前致谢,