问题标签 [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.
android - DDMS 跟踪中的奇怪间隙
我正在使用 DDMS 跟踪视图分析配置文件信息。我注意到我的许多较慢的功能似乎在它们中间有奇怪的间隙(见图)......好像他们决定在中途休息并重新开始。分析数据是使用“基于跟踪的分析”(而不是基于样本)收集的,因此应该不会错过任何函数调用。在下面的文本信息中,您可以看到它表示 100% 的时间是由“自己”占用的,因此无法通过调用其他函数来解释差距。如果我单击代表函数的颜色块,则跟踪视图将函数的两端与顶部的条连接起来,但我不知道这意味着什么。
我正在一台配备四核处理器的 xperia Z 手机上测试所有这些。
android - Android:使用 TraceView 分析 Nexus 7 中的代码性能
我正在尝试使用android 教程中提到的traceview来分析我的代码。由于 nexus 7 选项卡没有外部 sd 卡,因此我无法使用命令提取跟踪文件。adb pull <filename>.trace
所以我的问题是如何在不支持外部存储卡的设备(如nexus 7)中进行分析?
android - 使用方法跟踪测量活动开始时间不准确?
根据 Logcat 的说法,我的活动(使用相机)开始得很慢:
所以我决定使用方法分析来查看问题出在哪里(这是启动缓慢的 Activity 的地方):
并在 TakePhotoActivity 的 onResume 中调用:
但是,令我惊讶的是,Traceview 只显示了 260 毫秒的方法调用,所以我在某处损失了超过 1 秒!
我如何知道这段时间发生了什么?
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”命令的代码,它应该列出该命令的选项,但会产生上述错误。
android - 为什么我的 Android 应用程序在后台使用 CPU?
几个月来,我一直在编写一个 Android 应用程序。它尚未发布,但已安装在我的设备中。
今天我收到了来自 Battery Doctor 应用程序的通知,说我的应用程序消耗了大量 CPU,尽管我从昨天起就没有使用它。
所以基本上我的应用程序在后台运行,它不应该做任何事情,但它正在使用 CPU。
所以我打开 TraceView 并在后台对我的应用程序进行了一些分析(在此分析期间我根本没有与我的应用程序交互),这就是我得到的:http: //i.imgur.com/ PYg6twX.png
我在这里很无知。从我的实际代码中我根本看不到任何功能,所以我什至不知道从哪里开始寻找。而且我真的不明白屏幕截图中的这些功能是做什么的,或者它们为什么会出现在那里。
所以我有几个问题,我非常感谢一些帮助:
- 我的分析结果是预期的吗?或者如果我不与我的应用程序交互,这些功能是否不应该显示?
- 如果这些功能不应该出现,谁能猜出我的应用程序可能出了什么问题?admob可能是原因吗?
非常感谢!
android - 为什么 joda 时间会在占用这么多内存的时间之间产生差异
我有以下功能:
我试图获得两个日期之间的小时数差异。
这是我的跟踪视图:
该功能需要大量的时间和资源来执行 - 我在这里想念什么。由于这个函数占用了大量的 CPU 时间,我的服务在 5.0.1 上被终止了。
编辑:
深入挖掘,我发现 LocalDate init 占用了 99% 的 CPU 时间。有没有办法可以避免这种情况并提供预先计算的日期?
编辑 2:实施 Joda 2.6 后:
android - 如何理解 Android TraceView 工具中的“Calls+RecurCalls/Total”
在许多文章中,Calls+Recur Calls/Total 被简单地解释为“呼叫次数和重复呼叫次数”。是的,它可以清楚地解释像“1 + 0”这样的值的含义,但我无法了解像“1/441”这样的值的含义。见附件
android - Android Studio 1.2 Beta 3 中的 Traceview 在哪里?
Android Studio 很好地与 Traceview ( http://tools.android.com/tips/traceview ) 集成。但是我最近更新到 1.2 Beta 3 并且找不到这个按钮。你能帮我吗?
android - Debug.startMethodTracing() 跟踪文件目录
我正在尝试使用 Debug.startMethodTracing() 执行应用程序并计算启动时间,但找不到跟踪文件。我已经添加了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
. 问题是我没有 sd 卡所以我不知道 android studio 将我的文件保存在哪里。
非常感谢任何建议。
提前感谢,春分
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 中添加了采样支持。"
所以我的问题是:
Android 版本 5 是否支持基于 Trace (/method) 的分析?如果是,实现代码在哪里?
如果 ART 仅使用基于采样的分析,那么如何记录 Android 应用程序执行的每个方法?基于采样的分析器可能会错过方法执行,对吗?
提前致谢,