【问题标题】:Memory monitor in Android Studio reports different RAM usage than the deviceAndroid Studio 中的内存监视器报告与设备不同的 RAM 使用情况
【发布时间】:2015-03-23 16:15:01
【问题描述】:

在调查我正在开发的应用程序中的 RAM 使用情况时,我一直在使用 Android Studio 中的内存监视器工具(可以通过转到工具>Android>内存监视器在 Android Studio 中访问)。我注意到内存监视器中报告的我的应用程序的 RAM 使用情况总是远低于从设备查看 RAM 使用情况(可以通过转到设置>应用程序>运行来访问)。正如您在下面的屏幕截图中所见,内存监视器报告了大约 18MB 的 RAM 使用量(如果包括可用空间,则为 23MB),但设备报告的是 43MB。

为什么会有差异,而且其中一个比另一个更准确?

【问题讨论】:

标签: android memory-management android-studio


【解决方案1】:

我已经测试了 Android Studio 的内存监视器的 Allocated 可以通过编程方式获得:

long allocatedMemory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();

但这仅适用于获取当前应用的信息。

【讨论】:

    【解决方案2】:

    我怀疑内存监视器工具正在与 dalvik 虚拟机讨论 Java 代码进行的堆分配,而设备管理器正在显示整个进程正在使用的内存。所以第一个不包括虚拟机本身(或其文本和库)使用的开销或内存,或任何堆外分配(有时本机代码可以分配虚拟机不直接可见的内存)。

    查看https://developer.android.com/tools/debugging/debugging-memory.html#ViewingAllocations 并尝试运行命令:

    adb shell dumpsys meminfo <package_name>
    

    更精确地细分应用程序的运行时内存使用情况。

    【讨论】:

      猜你喜欢
      • 2016-12-23
      • 1970-01-01
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-11
      • 2017-07-14
      • 1970-01-01
      相关资源
      最近更新 更多