【问题标题】:Profiling memory usage (heap, stack, OpenCL buffers for GPUs) on the Android devices分析 Android 设备上的内存使用情况(堆、堆栈、GPU 的 OpenCL 缓冲区)
【发布时间】:2020-10-12 21:08:30
【问题描述】:

我正在尝试精确测量我的应用程序使用的内存总量。我正在开发一个在电话设备上利用 GPU 的 .so 库。我在开发中主要使用 C/C++ 和 OpenCL,因此,我所有的内存分配都是 new/deleteclCreateBuffer/clReleaseMemObject

确切地说,我正在寻找以下值:

  1. 堆上使用的总内存
  2. 堆栈上使用的总内存(如果可能)
  3. 用于 OpenCL 缓冲区的总内存

我做了什么:

我使用dumpsys 使用以下命令收集了一些数字:

adb shell dumpsys meminfo com.example.hellolibs.debug -d

而且,我还编写了一些简单的分析代码来跟踪所有 OpenCL 缓冲区分配/释放(我正在跟踪底层 OpenCL 缓冲区的引用计数器)。我使用分析代码测量的总内存使用量大于dumpsys 使用上述命令报告的内存使用量。不应该这样吧?

我的目标平台是:带有 Mali GPU 的 ARM CPU

【问题讨论】:

    标签: android arm gpu opencl mali


    【解决方案1】:

    听起来您想要 Streamline,它是 Arm Mobile Studio 中的性能分析器: https://developer.arm.com/tools-and-software/graphics-and-gaming/arm-mobile-studio/components/streamline-performance-analyzer

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-23
      • 2021-12-29
      • 1970-01-01
      • 2011-06-28
      • 2014-09-07
      • 2012-11-23
      • 1970-01-01
      • 2011-10-02
      相关资源
      最近更新 更多