我正在使用 systrace 对其 GPU 的 android 应用程序进行性能调查。 systrace 中的“GPU 完成”线程是啥意思

Posted

技术标签:

【中文标题】我正在使用 systrace 对其 GPU 的 android 应用程序进行性能调查。 systrace 中的“GPU 完成”线程是啥意思【英文标题】:I am doing performance investigation for an android application for its GPU using systrace. What does “GPU completion” thread in systrace means我正在使用 systrace 对其 GPU 的 android 应用程序进行性能调查。 systrace 中的“GPU 完成”线程是什么意思 【发布时间】:2021-08-24 08:48:20 【问题描述】:

如果在应用启动时存在 tflite 模型初始化,我看到“GPU 完成”线程在应用启动较长时间后进入空闲模式。它是否说明了 android 设备中 GPU 的更高使用率?空闲状态表示此时不需要GPU使用?

【问题讨论】:

您遵循什么具体流程来获取 systrace 信息?另外,你能发一张它的截图吗? 【参考方案1】:

编辑:只是想澄清GPU Completion 不是一个真正的线程。这只是 systrace 以线程的形式组织跟踪事件的一种方式。

原答案:

GPU Completion 是在您的应用进程中等待 GPU 工作的线程。 systrace 跟踪事件waiting for GPU completionqueueBuffer 发送到 GPU 时开始,在 GPU 完成工作时结束。

这并不意味着 GPU 在整个活动期间都很忙。如果您想监控实际 GPU 使用情况,您可能想尝试Android Graphics Inspector。它面向游戏开发者,但在这种情况下也很有用。

【讨论】:

以上是关于我正在使用 systrace 对其 GPU 的 android 应用程序进行性能调查。 systrace 中的“GPU 完成”线程是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

powerprofile 和 systrace 输出不一致

自定义事件跟踪未显示在 systrace 中

在 Jelly Bean 中使用 systrace 失败

Unable to select a master clock domain because no path can be found from “SYSTRACE“ to “LINUX_FTRACE

使用systrace的问题记录

Android Systrace 使用与解析