随笔分类 -  内存管理

内存管理-31-系统内存统计-6-dumpsys meminfo-1-系统字段
摘要:一、系统字段简介 系统部分示例(基于A16+Linux=6.1) # dumpsys meminfo ... Total RAM: 13,098,184K (status normal) Free RAM: 2,929,753K ( 680,353K cached pss + 1,430,720K 阅读全文

posted @ 2026-11-02 15:20 Hello-World3 阅读(1) 评论(0) 推荐(0)

内存管理-31-每进程内存统计-6-/proc/pid/smaps_rollup
摘要:一、smaps_rollup 简介 基于 Linux-6.1 可用于评估单个进程内存占用,cat打印如下: # cat /proc/4489/smaps_rollup 02000000-7fde8b8000 p 00000000 00:00 0 [rollup] Rss: 2259516 kB Ps 阅读全文

posted @ 2026-11-02 15:11 Hello-World3 阅读(1) 评论(0) 推荐(0)

内存管理-80-dma-buf-1-调试-2-dmabuf_dump
摘要:一、简介 1. 命令介绍 AOSP 自带的 dmabuf_dump(源码在 system/memory/libmeminfo/libdmabufinfo/tools/dmabuf_dump.cpp), debug 版本默认会带入,若没带入可 m dmabuf_dump 单独编一个。 # dmabuf 阅读全文

posted @ 2026-10-28 15:45 Hello-World3 阅读(5) 评论(0) 推荐(0)

内存管理-80-dma-buf-1-调试-1-文件节点
摘要:基于 Linux-6.1 一、文件节点 1. /sys/kernel/dmabuf/buffers dma-buf-sysfs-stats.c 中有注释: 当启用 CONFIG_DMABUF_SYSFS_STATS 后,/sys/kernel/dma-buf/buffers 接口会暴露出所有 DMA 阅读全文

posted @ 2026-10-28 15:07 Hello-World3 阅读(2) 评论(0) 推荐(0)

内存管理-79-MMU-1-疑问chatGPT
摘要:一、Linux系统中有哪些MMU,作用分别是什么?用于把什么地址翻译成什么地址? 注: 基于 Linux + QNX 虚拟化平台。 1. 先给结论Linux 内核本身不实现 MMU,MMU 是 SoC 硬件;Linux 只负责建立页表、处理缺页异常、刷新 TLB。按“谁发起地址访问”来划分,一颗 A 阅读全文

posted @ 2026-10-24 21:40 Hello-World3 阅读(12) 评论(0) 推荐(0)

内存管理-31-系统内存统计-6-dumpsys meminfo-3-chatGPT
摘要:一、dumpsys meminfo 的"Free RAM"字段的大小能代表系统物理内存的紧张程度吗?若物理内存极度紧张,这个值会持续变小吗? 结论: 不能单独代表。 Android 16 的 dumpsys meminfo 里,“Free RAM”是 framework 拼出来的一个“空闲 + 可回 阅读全文

posted @ 2026-10-24 16:07 Hello-World3 阅读(4) 评论(0) 推荐(0)

内存管理-78-低内存-1-危害
摘要:一、低内存导致CPU负载高 在 Android 中,系统低内存(Low Memory)与CPU负载高(High CPU Load)之间存在着密切的因果关系。当可用内存不足时,系统为了维持运转和释放空间,会频繁触发一系列底层机制,这些机制往往是极度消耗CPU资源的。 导致这种现象的核心原因主要有以下几 阅读全文

posted @ 2026-10-16 21:28 Hello-World3 阅读(14) 评论(0) 推荐(0)

内存管理-31-内存相关文件节点-进程-1-clear_refs
摘要:一、简介 Linux 系统中的 /proc/<pid>/clear_refs 是一个只写(Write-only)的虚拟文件节点(需要 CONFIG_PROC_PAGE_MONITOR 内核配置选项支持),用于重置或清除指定进程(<pid>)相关内存页的特定状态位(如引用位、脏页位等)。 向该文件写入 阅读全文

posted @ 2026-10-09 11:08 Hello-World3 阅读(8) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Caching & Reclaim-9-zswap
摘要:一、zswap Internals: Compressed Swap Cache 章节翻译 注: 翻译自 https://kernel-internals.org/mm/zswap/ zswap 内部:压缩 Swap 缓存 在去往 swap 设备的路上拦截页面的压缩 RAM 缓存 —— 用 CPU 阅读全文

posted @ 2026-10-09 10:43 Hello-World3 阅读(17) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Caching & Reclaim-8-Swap
摘要:一、Swap 章节翻译 注: 翻译自 https://kernel-internals.org/mm/swap/ Swap 把内存延伸到磁盘 1. 什么是 Swap? Swap 允许内核把不常用的页从 RAM 搬到磁盘,给活跃使用腾出内存。当这些页再次被需要时,再从 swap 读回来。 RAM 满了 阅读全文

posted @ 2026-10-09 10:26 Hello-World3 阅读(6) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Caching & Reclaim-7-DAMON
摘要:一、DAMON: Data Access Monitoring 章节翻译 注: 翻译自 https://kernel-internals.org/mm/damon/ DAMON:数据访问监控(Data Access Monitoring)一个轻量、准确、可扩展的内核框架,用于观察内存如何被访问 —— 阅读全文

posted @ 2026-10-08 20:38 Hello-World3 阅读(13) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Caching & Reclaim-6-Shrinker API
摘要:一、Shrinker API 章节翻译 注: 翻译自 https://kernel-internals.org/mm/shrinker/ Shrinker API 一种回调机制,让各子系统参与内存回收 —— 当内核需要内存时,会请已注册的 shrinker 释放它们的缓存。 1. 什么是 Shrin 阅读全文

posted @ 2026-10-08 17:39 Hello-World3 阅读(4) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Caching & Reclaim-5-Zone Reclaim Policy
摘要:一、Zone Reclaim Policy 章节翻译 注: 翻译自 https://kernel-internals.org/mm/zone-reclaim/ Zone 回收策略(Zone Reclaim Policy),内核如何按 zone 回收内存、vm.zone_reclaim_mode 的作 阅读全文

posted @ 2026-10-08 16:12 Hello-World3 阅读(8) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Caching & Reclaim-4-Reclaim Throttling
摘要:一、Reclaim Throttling and Balancing 章节翻译 注: 翻译自 https://kernel-internals.org/mm/reclaim-throttling/ 回收节流与均衡(Reclaim Throttling and Balancing), 当回收跟不上时, 阅读全文

posted @ 2026-10-08 15:51 Hello-World3 阅读(17) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Caching & Reclaim-3-MGLRU
摘要:一、MGLRU: Multi-Generation LRU 翻译 注: 翻译自 https://kernel-internals.org/mm/mglru/ 一种用于更佳工作集检测的多代页面回收算法 1. 传统 LRU 的问题 传统的 LRU(最近最少使用)页面回收机制在每个内存区域(Zone)中只 阅读全文

posted @ 2026-10-08 15:13 Hello-World3 阅读(13) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Caching & Reclaim-2-Page Reclaim
摘要:一、Page Reclaim 章节翻译 注: 翻译自 https://kernel-internals.org/mm/reclaim/ 当内存不足时会发生什么 1. 什么是页面回收? 当系统空闲内存不足时,内核必须从现有用户手中回收页面。页面回收负责寻找可以被释放或写入交换空间(swap)的页面,从 阅读全文

posted @ 2026-10-08 14:52 Hello-World3 阅读(12) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Caching & Reclaim-1-Page Cache
摘要:一、页缓存 (Page Cache)翻译 注: 翻译自 https://kernel-internals.org/mm/page-cache/ 在内存中缓存文件数据。 1. 什么是页缓存? 页缓存将最近访问过的文件数据保存在 RAM 中。当您读取文件时,数据会留在内存中——后续的读取将直接来自 RA 阅读全文

posted @ 2026-10-08 13:49 Hello-World3 阅读(6) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Advanced-7-Maple Tree
摘要:一、Maple Tree: VMA Management Data Structure 翻译 注: 翻译自 https://kernel-internals.org/mm/maple-tree/ Maple Tree:VMA 管理数据结构 取代了 Linux 6.1 中用于虚拟内存区域(VMA)管理 阅读全文

posted @ 2026-10-08 10:45 Hello-World3 阅读(15) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Advanced-8-Per-VMA Locks
摘要:一、Per-VMA Locks 翻译 注: 翻译自 https://kernel-internals.org/mm/per-vma-locks/ Per-VMA 锁(Per-VMA Locks) 消除缺页处理中的 mmap_lock 瓶颈。 1. mmap_lock 每个进程都有一个属于自身 `mm 阅读全文

posted @ 2026-10-06 14:12 Hello-World3 阅读(17) 评论(0) 推荐(0)

内存管理-77-kernel-internals系列-Memory专题-Advanced-6-Folio Abstraction
摘要:一、The Folio Abstraction 小节翻译 注: 翻译自 https://kernel-internals.org/mm/folio/ Folio 抽象 struct folio 用一等内核对象取代 compound-page 补丁,让多页内存单元安全、显式、高效 1. 关键源文件 文 阅读全文

posted @ 2026-10-05 21:41 Hello-World3 阅读(13) 评论(0) 推荐(0)

导航