有没有办法找出偶尔内存使用量激增的原因?

问题描述 投票:0回答:1

我正在使用 Android Studio 进行内存分析,并注意到内存偶尔(每隔一两个小时)会出现巨大的峰值:

由于这是随机的,因此在看到尖峰时盯着屏幕进行捕获是不切实际的。

我想知道是否有一种实用的方法可以找出内存使用量激增的原因。

我正在调查这个问题,因为应用程序偶尔会崩溃(显然并不是每个内存使用高峰都会导致崩溃)。我怀疑这个峰值可能是罪魁祸首。

android android-memory android-profiler
1个回答
0
投票

堆转储是某个时间点的快照主机。它没有揭示历史。

对于您的问题,一种选择是让您的应用程序监控并转储堆本身。

您的屏幕截图显示峰值主要来自“其他”类别,是Android Memory Profiler如何解析“dumpsys meminfo --local --checkin %d”的输出,然后将使用情况分类为各种类别。您可以尝试看看您的应用程序是否可以收集类似的数据。

当应用程序检测到峰值时,它可以通过调用 API [Debug.dumpHprofData](https://developer.android.com/reference/android/os/Debug#dumpHprofData(java.lang.String) 转储堆.

© www.soinside.com 2019 - 2024. All rights reserved.