随笔分类 -  内存管理

内存管理-0-开篇
摘要:一、什么是内存管理 1. 基础内存管理可以大致分为5块 (1) 物理内存管理 node、zone、page、buddy-system、slab (2) 虚拟内存管理 虚拟内存分用户空间和内核空间,用户空间又分为很多段(代码段、数据段、栈、堆、mmap映射区、动态共享库等等); 内核空间也是分为很多区 阅读全文

posted @ 2024-07-01 16:24 Hello-World3 阅读(63) 评论(0) 推荐(0)

内存管理-6-虚拟内存相关结构体
摘要:基于msm-5.4 一、struct mm_struct 1. 简介 内嵌在 task_struct 结构中,表示一个进程虚拟地址空间。 2. 成员介绍 //include/linux/mm_types.h struct mm_struct { struct { struct vm_area_str 阅读全文

posted @ 2024-06-19 16:15 Hello-World3 阅读(200) 评论(0) 推荐(0)

内存管理-5-物理内存管理-1-相关结构体
摘要:基于msm-5.4 概述: 物理内存组织关系如下图。非服务器的设备,一般只有一个内存node节点,使用 pglst_data 结构描述;一个内存节点下有较多分区,使用 zone 结构描述;每个分区中有不同大小的空闲内存块,通过 free_area 结构进行描述;物理内存管理的最小单位使用 page 阅读全文

posted @ 2024-06-18 21:41 Hello-World3 阅读(191) 评论(0) 推荐(0)

内存管理-31-相关文件节点汇总
摘要:基于msm-5.4 hqx+linux 一、proc目录下文件节点 1. zoneinfo 打印的是全局变量 vm_node_stat[] 的值;打印 struct zone 结构的部分成员,如 水位 _watermark,zone->vm_stat[],zone的 spanned_pages/pr 阅读全文

posted @ 2024-04-12 16:19 Hello-World3 阅读(636) 评论(0) 推荐(0)

内存管理-1-madvise()
摘要:一、man madvise 翻译:https://man7.org/linux/man-pages/man2/madvise.2.html //这个文档内容要比man madvise的内容新 madvise - 提供有关内存使用的建议。 位于标准C库里面,函数原型: #include <sys/mm 阅读全文

posted @ 2024-03-11 09:35 Hello-World3 阅读(3063) 评论(0) 推荐(0)

DDR内存基础知识和带宽测试
摘要:一、DDR基础知识 1. 几个频率 (1) 核心频率:真实运行频率。 (2) 倍增系数:DDR通过数据预取技术放大速率,每代ddr倍率是固定的,ddr=2, ddr2=4, ddr3=8, ddr4=8, ddr5=16 (3) 有效频率;厂商标注的频率,可以理解为数据传输速率。厂商也想逐步淡化其它 阅读全文

posted @ 2023-12-06 17:36 Hello-World3 阅读(4248) 评论(0) 推荐(0)

内存管理-51-lmkd-1-笔记
摘要:一、简介 lmkd(LowMemoryKiller Daemon)是一个由 init 进程 fork 出来的守护进程,用于当安卓系统内存不足的时候,挑选合适的进程杀死,以保证系统的稳定流畅性。实现文件: /android/system/memory/lmkd/lmkd.cpp //实现 /andro 阅读全文

posted @ 2023-11-18 16:06 Hello-World3 阅读(4) 评论(0) 推荐(0)

内存管理-31-系统内存统计-5-procrank与procmem
摘要:一、VSS/RSS/PSS/USS的区别 1. VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)VSS表示一个进程可访问的全部内存地址空间的大小。这个大小包括了进程已经申请但尚未使用的内存空间。在实际中很少用这种方式来表示进程占用内存的情况,用它来表示单个进程的内存使用 阅读全文

posted @ 2021-11-30 20:07 Hello-World3 阅读(2502) 评论(0) 推荐(0)

mtrace分析内存泄漏
摘要:1. 测试程序 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/time.h> #include <mcheck.h> static void memory_leak_test() { char *p 阅读全文

posted @ 2021-11-19 16:05 Hello-World3 阅读(137) 评论(0) 推荐(0)

导航