Android dumpsys meminfo "Swapped Dirty" 列是啥意思?

Posted

技术标签:

【中文标题】Android dumpsys meminfo "Swapped Dirty" 列是啥意思?【英文标题】:Android dumpsys meminfo "Swapped Dirty" coloumn meaning?Android dumpsys meminfo "Swapped Dirty" 列是什么意思? 【发布时间】:2015-09-01 13:26:14 【问题描述】:

关于“adb shell dumpsys meminfo”的输出有很多问题,如下所示: adb shell dumpsys meminfo - What is the meaning of each cell of its output? 现在我们有了这篇描述内存分配类型的好文章: https://developer.android.com/tools/debugging/debugging-memory.html

然而,没有提到“交换脏”类型的内存分配。这是什么野兽? AFAIK,Android 不会交换脏页,但有时我会在该列中得到非零值:

                  Pss  Private  Private  Swapped     Heap     Heap     Heap
                Total    Dirty    Clean    Dirty     Size    Alloc     Free
               ------   ------   ------   ------   ------   ------   ------
 Native Heap     3861     3844        0     2024     7128     6801      326
 Dalvik Heap     7073     6996        0     5408    45111    31778    13333

【问题讨论】:

【参考方案1】:

某些 Android 设备确实使用交换,但它们交换到 RAM 而不是闪存。 Linux 有一个称为 ZRAM 的功能,它可以压缩页面,然后将它们交换到特殊的 RAM 区域,并在需要时再次解压缩。

所以“Swapped Dirty”中列出的页面很可能在 ZRAM 中。

【讨论】:

非常感谢!现在我在这里看到:source.android.com/devices/tech/config/low-ram.html 可以将 android 配置为支持 zRAM。虽然我不确定这是否真的是我的情况或如何测试它 - 标记为“已回答”。我猜这个专栏是为这种功能保留的。 如果您启用了 ZRAM,“dumpsys meminfo”的最低行通常会显示:ZRAM:3,024K 物理用于 9,224K 交换(520,908K 总交换) 所以“Swapped Dirty”中列出的页面很可能在 ZRAM 中。这是否意味着在 android 中换出的页面总是很脏?因为我看到“SwapPss Dirty”列但没有看到“SwapPss clean”列之类的东西

以上是关于Android dumpsys meminfo "Swapped Dirty" 列是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章