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" 列是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

android dumpsys meminfo 详解

在android中查询“dumpsys meminfo”

Android使用procrank和dumpsys meminfo分析内存占用情况

Android 内存优化dumpsys meminfo PID 查看单进程内存信息详解

Android 内存优化dumpsys meminfo PID 查看单进程内存信息详解

dumpsys meminfo 详解