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使用procrank和dumpsys meminfo分析内存占用情况
Android 内存优化dumpsys meminfo PID 查看单进程内存信息详解