【问题标题】:adb shell dumpsys meminfo - What is the meaning of each cell of its output?adb shell dumpsys meminfo - 其输出的每个单元格的含义是什么?
【发布时间】:2014-11-06 09:44:21
【问题描述】:

我正在查看下面给出的命令输出

adb shell dumpsys meminfo com.imangi.templerun

但是,我无法正确理解这一点。

谁能帮我理解这个?

【问题讨论】:

标签: android shell adb android-memory


【解决方案1】:

由于不同版本的“dumpsys”所显示的列和行可能会有所不同,因此我将尝试在此处提供一些通用概述...

Android 中的每个应用程序都在运行其自己的 Dalvik VM 实例的不同进程中运行。

  • Native Heap 行表示进程本身使用的内存(例如:Native C mallocs)。
  • Dalvik Heap 是由 Dalvik VM 分配的内存(例如:Java Android 代码中的变量)。
  • Dalvik Other 是用于 JIT 和 GC 的内存。

Android 可能会在多个进程之间共享内存页面(想想常见框架的代码)。干净的内存是从存储(应用程序的代码)分配或加载后没有改变的内存。脏内存是用于计算的空间。 Android 没有交换机制,因此脏内存也是在应用退出时将被释放的 RAM。

  • Private Dirty 是非共享的脏内存(猜你猜到了)。
  • Private Clean 是非共享的干净内存(等等)。
  • PSS Proportional Set Size:这是一个棘手的测量方法,其中所有私有页面贡献其大小的 100%,而共享内存贡献“大小/(共享进程数)”。这样,如果您将所有进程的所有 PSS 相加,您将获得使用的总内存。
  • 交换脏不知道。我对此有疑问:Android dumpsys meminfo "Swapped Dirty" coloumn meaning?

进一步阅读: https://developer.android.com/tools/debugging/debugging-memory.html

【讨论】:

  • 这听起来很棒。谢谢!干净的内存是从存储(应用程序的代码)分配或加载后没有改变的内存。脏内存是用于计算的空间。 Android 没有交换机制,所以脏内存也是 RAM,会在应用退出时释放。
  • 我认为原因是 Anroid 使用 ZRAM。
  • “交换脏不知道。”我认为作者外植的关于脏的概念是创造的。但是,我并不完全同意“android 没有交换机制”。据我所知,Andriod 有它的交换机制,但不像 PC 那样将页面交换到磁盘。由于 Android 使用 ZRAM,Android 将页面交换到 RAM 而不是磁盘意图以提高页面交换性能,就像 IOS 一样!
猜你喜欢
  • 2015-03-09
  • 1970-01-01
  • 2023-03-31
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多