如何查看Android设备的GPU使用情况?

时间:2012-05-09 08:48:44

标签: android

我想计算GPU使用率。是否有任何类似于cpu统计信息保存在/ proc / stat的文件?

获取GPU等详细信息的方法可能是什么?

由于

5 个答案:

答案 0 :(得分:4)

Since Android 4.3(Jelly Bean)你可以通过Dev Options中的工具监控它。

Seetings>更多>开发人员选项>配置文件GPU渲染。

您可能需要在Android 4.2上启用开发者选项,因为它默认是隐藏的。通过在设置>上点击7次启用此功能关于手机>内部编号。

配置文件GPU渲染有几个选项,“在屏幕上显示为条形图”是一种很好的方式,可以快速直观地查看正在发生的事情。

enter image description here

答案 1 :(得分:1)

由Google提供的

AGI (Android GPU Inspector)目前处于公开测试阶段,并且仅支持以下devices

DEVICE NAME GPU NAME
Google Pixel 4 (standard and XL)    Qualcomm® Adreno™ 640
Google Pixel 5  Qualcomm® Adreno™ 620
Google Pixel 4a 5G  Qualcomm® Adreno™ 620

These devices do not support AGI yet but will offer support in the future:
DEVICE NAME GPU NAME
Google Pixel 4a Qualcomm® Adreno™ 618
Samsung Galaxy S10 series   Qualcomm® Adreno™ 640 and Arm® Mali™ G76
Samsung Galaxy S20 series   Qualcomm® Adreno™ 650 and Arm® Mali™ G77
Samsung Galaxy Note 10 series   Qualcomm® Adreno™ 640 and Arm® Mali™ G76
Samsung Galaxy Note 20 series   Qualcomm® Adreno™ 650 and Arm® Mali™ G77

这将允许您分析应用程序的GPU使用情况。

答案 2 :(得分:1)

对于Arm Mali GPU,您可以使用Streamline,它是Arm Mobile Studio的一部分的性能分析器:https://developer.arm.com/tools-and-software/graphics-and-gaming/arm-mobile-studio/components/streamline-performance-analyzer

Mobile Studio是免费的,并且有一些不错的视频教程。

答案 3 :(得分:0)

如果您想优化您的 GL 管道代码,您可能会发现 Fencing 是一个简单的替代或补充工具。这是 Kotlin 中的一个示例:

    override fun onDrawFrame(unused: GL10) {

        if(glPipelineFence != null) { // if it's the first pass then ignore
            // block until the GPU has reached the pipeline fence
            val result = glClientWaitSync(glPipelineFence!!, 0, 1000000000)
            if (result == GL_TIMEOUT_EXPIRED) Log.v("myinfo", "gl fence error: expired")
            if (result == GL_WAIT_FAILED) Log.v("myinfo", "gl fence error: failed")
            glDeleteSync(glPipelineFence!!)
        }

        // YOUR OPEN GL ES STUFF GOES HERE

        glPipelineFence = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0)
    }

然后您可以使用增量,例如System.currentTimeMillis() 的任一侧 glClientWaitSync 或整个函数范围,以查看您的管道需要多长时间。 glClientWaitSync 将阻塞,直到 OpenGL ES 管道在最后执行栅栏命令。

答案 4 :(得分:-2)

GPUz将帮助您跟踪任何图形应用程序的GPU使用情况。它可以简单地显示内存使用情况和GPU负载,并且可能适用于大多数硬件。