问题标签 [systrace]
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 - 安卓模拟器上的 Systrace
我正在尝试在 android 4.2 (avd 17) 模拟器上使用 systrace
我在跟踪选项中启用了 usb debuggimg 并激活了 webview 并在此处遵循本指南http://www.youtube.com/watch?feature=player_embedded&v=Q8m9sHdyXnE#t=31m15s
但是当我尝试在 android 工具目录中使用 ./systrace.py 开始跟踪时,我看到以下输出
有人知道我需要做什么才能使追踪工作吗?
android - 无法在 Android SDK 中查看 Systrace 工具生成的 HTML 跟踪报告
我正在尝试使用Android SDK 中的Systrace工具生成跟踪报告,但我无法在浏览器中查看报告。它是空白的,不包含任何信息。我在一些论坛上读到我需要在 Chrome 浏览器中打开报告,我也用 Chrome 打开它但报告是空白的。
我已经从开发人员选项中启用了 USB 调试,并且设备正在运行 Android 4.2,并且我正在使用Android SDK 中的DDMS工具来生成跟踪。
android - 如何将 Android FTrace 精度提高到微秒?
我正在尝试在Android环境中生成FTrace文件,使用:
问题是mytracefile.txt中时间戳的精度以毫秒为单位:
通常,它应该以微秒为单位,例如14186.691234而不是14186.690000。
我已经测试了我拥有的所有其他trace_clock 选项(本地、全局和计数器),但结果始终相同。更改该参数不会更改输出文件中的任何内容。
我仔细阅读了 FTrace 文档,但我不知道还有哪些配置需要更改。
在互联网上搜索我只能找到这个错误报告,但没有解决: http: //lists.linaro.org/pipermail/linaro-dev/2011-February/002720.html
有什么建议吗?
我必须安装内核中的其他模块吗?
更新:
- 安卓版本:4.2.2
- 内核 Linux 版本:3.4.7
dmesg输出也显示毫秒精度:
谢谢,
systrace - systrace 导出为日志格式,如 csv 或文本文件,而不是 html
我们可以将 systrace 输出导出为 CSV 文件,以便我可以解析和生成报告。
android - performTraversals 递归的原因,egl 缓冲区交换时间长
我正在使用 systrace 在 Android 4.2.2 上的非根 Nexus 4 上测量我的应用程序的性能。我在报告中看到一些对我来说没有意义的东西,我想知道它们是否可能是 systrace 错误,或者是否有人可能知道这些症状的任何可能的根本原因。
1- 运行结束时在 performTraversals 下的大递归
链接到报告- 请查看运行结束时的大曲线(约 18 秒)。我的理解是 performTraversals 处于框架级别,它在其中绘制用户界面的单个框架。所以对我来说,它下面可能有递归调用是没有意义的。另外因为我在运行结束时得到了这种指数堆叠,我认为这实际上只是运行结束时数据的 systrace 中的一个缺陷。这种递归可行吗?这是什么意思?
2- 在缓冲交换时间长的运行中间执行遍历递归
链接到报告- 从 12 秒左右开始的有趣行为。当我在跑步过程中看到类似的东西时,我觉得也许我不应该把它写下来。此外,当一位同事告诉我忽略它时,我花了很多时间试图找出可能导致如此长的 eglSwapBuffers/queueBuffer (我的应用程序不使用 openGL,只是直接使用框架)的原因,但无济于事因为交换缓冲区总是即时的。可能还有更多吗?这里有什么要调查的吗?
android - 在设备上运行 Android systrace
我无法运行名为 systrace.pl 的 Android SDK 工具,因为我收到如下错误:
实际上 /sys/kernel/debug/tracing 目录甚至都不存在。
一项小研究表明我需要使用以下命令启用 debugfs:
之后在那里运行 mount 表明 debugfs 正在运行:
而且我在开发人员设置菜单中启用了跟踪(所有项目)。我在三星 Galaxy S3 上使用库存 ROM 4.1.1。
有很多关于 systrace for Android 的文章,但似乎没有什么可以解决 /sys/kernel/debug/tracing 中没有实际生成文件的问题......
android - Android DDMS v22.0.1 无法使用 Droid Razor 4.1.2 生成系统跟踪
我选择了几个跟踪标记,当我运行跟踪时(来自DDMS
),我得到以下输出:
error openi
(在这里切断错误)
内核目录中确实没有调试文件,但是哪种机制会生成必要的路径?
android - Android Systrace 没有这样的文件或目录
这是错误消息
我查看了 systrace.py,似乎文件系统上缺少 legacy_script “systrace-legacy.py”。我已经阅读了有关 stackoverflow 的几篇相关文章,并且我已经将包含 adb 的目录放在了 %PATH% 中。问题依然存在。我写信询问是否有任何方法可以解决这个问题。
android - Systrace |Android 4.1.1(Galaxy S3 I747UCDLK3) 上没有 /sys/kernel/debug/tracing 目录
我正在尝试将 Android systrace 工具与我的 Galaxy S3 一起使用,但我遇到了一些问题,似乎是内核问题。
我已经按照这篇文章中描述的步骤进行操作:Failed to use systrace in Jelly Bean
我能够“mount -t debugfs nodev /sys/kernel/debug”,这是“mount”命令的结果:
所以我猜 debugfs 已安装到系统上。但是,我找不到 ftrace 应该所在的 /sys/kernel/debug/tracing 目录。所以这是我在 adb shell 中使用“atrace”命令时遇到的错误:
我浏览了有关 stackoverflow 的几篇文章,在这篇文章中(Can't use Android shell atrace command because of write access)一个答案建议重新编译内核。我们真的必须这样做才能使用 systrace 工具吗?
这篇文章中的一个答案(Unable to run systrace tool on android emulator)提到三星 GS3 实际上可以使用 systrace。我想知道我是否在这里做错了什么。
android - 我可以使用 performTraversals 在 Android 上测量 FPS 吗?
我想计算 FPS 以检测基于现有 Android 分析工具的应用程序的性能问题。
我注意到在 Systrace 上,它可以记录 performTraversals 的长度。据我所知,performTraversals 执行测量、布局和绘制,其中包括更新框架时的大部分工作。那么 performTraversals 能否具有足够的代表性来衡量一个帧是否需要 60 毫秒才能更新?
我还注意到 Systrace 记录了在 SurfaceFlinger 上花费的时间。我知道 SurfaceFlinger 用于渲染目的,但我不知道帧的确切起点和终点。我是否还应该考虑花在 SurfaceFlinger 上的时间和帧速率?(虽然我确实观察到 SurfaceFlinger 比 performTraversals 执行的频率更高,这意味着 SurfaceFlinger 可能不一定遵循 performTraversals。它也会在其他场景中触发。)
PS 我知道 sysdump gfxinfo,但它只能记录 128 帧(~2 秒),而我想要的可能会持续更长时间。