0

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

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

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

我做了什么:

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

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

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

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

4

1 回答 1

1

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

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

于 2020-07-08T17:12:15.887 回答