【Android Performance】Swappiness参数原理与内存回收策略深度解析
📅 2026/7/12 3:33:47
👁️ 阅读次数
📝 编程学习
文章目录
- Android系统性能优化:Swappiness参数原理与内存回收策略深度解析
- 导入语
- 1 ~> 内存回收的基础概念
- 1.1 两种可回收的内存页
- 1.2 文件页 vs 匿名页的回收代价
- 2 ~> Swappiness 是什么
- 2.1 一句话定义
- 2.2 取值与行为对照
- 2.3 Android 为什么偏向高值
- 3 ~> Swappiness 的配置与查询
- 3.1 查询当前值
- 3.2 临时修改(重启后失效)
- 3.3 永久修改(编译时固化)
- 3.4 操作注意事项
- 4 ~> 匿名页回收的完整流程
- 4.1 内核怎么决定回收什么
- 4.2 Swappiness 如何影响扫描比例
- 4.3 Android 场景下的典型路径
- 5 ~> Swappiness 与 zram 的配合
- 5.1 zram 是 Android 高 Swappiness 的前提
- 5.2 zram + 高 Swappiness 的实际效果
- 6 ~> 实战调优策略
- 6.1 什么时候需要调整 Swappiness
- 6.2 修改指南
- 6.3 验证指标
- 7 ~> Swappiness 的常见误区
- 7.1 误区一:"设为 0 能禁止 swap,让系统更快"
- 7.2 误区二:"设为 200 就能最大化可用内存"
- 7.3 误区三:"不同项目的 Swappiness 应该统一"
- 7.4 误区四:"改了 Swappiness 就不用管 zram 了"
- 思考 && 总结
- 结尾
Android系统性能优化:Swappiness参数原理与内存回收策略深度解析
📖文章简介:本文系统讲解Android系统中Swappiness参数的工作原理与调优策略。文章从Linux内核虚拟内存管理的基础理论出发,深度拆解Swappiness在[0,200]取值区间内对匿名页(Anonymous Pages)与文件页(File Pages)回收倾向的控制机制:值越大越优先回收匿名页(触发swap),值越小越优先回收文件页。文中结合Android特有的内存压力场景(低内存设备、应用保活、zram压缩),详细讲解Swappiness的配置位置(init.ram.rc)、查询与修改命令、以及如何通过逐步验证法选取最适合项目的配置值。附有匿名页/文件页回收决策流程图、Swappiness取值与系统行为对照表,适合从事Android内存优化和系统调优的工程师阅读参考。
🎬 个人主页:源码骑士
❄专栏传送门:
编程学习
技术分享
实战经验