【操作系统】Linux&RT-Thread查看内存分布的方法

Linux&RT-Thread查看内存分布的方法

  • 1.Linux系统中查看内存分布
    • 1.1 查看物理内存分布
    • 1.2 查看进程内存映射
    • 1.3 查看SLAB分配情况
  • 2. RT-Thread系统中查看内存分布
    • 2.1 使用msh命令
    • 2.2 使用API获取内存信息
    • 2.3 通过FinSH组件
  • 3.对比总结

1.Linux系统中查看内存分布

1.1 查看物理内存分布

cat /proc/meminfo   显示系统内存使用概况,包括总内存、空闲内存、缓存等。
cat /proc/buddyinfo  显示Buddy系统的内存碎片情况,按order(2^n页)显示可用内存块数量。
cat /proc/iomem  显示物理内存地址空间的分布情况

1.2 查看进程内存映射

pmap -x <pid> 显示指定进程的内存映射详情,包括地址范围、权限、映射文件等。
cat /proc/<pid>/maps  显示指定进程的内存映射信息。

1.3 查看SLAB分配情况

cat /proc/slabinfo  显示SLAB分配器的使用情况,包括各种缓存的对象数量。
slabtop  动态显示SLAB缓存使用情况(类似top命令)

2. RT-Thread系统中查看内存分布

2.1 使用msh命令

msh > list_mem   显示系统内存堆的使用情况,包括总大小、已使用、最大空闲块等。
msh > list_memp  显示内存池(mempool)的使用情况。

2.2 使用API获取内存信息

void rt_system_memheap_info(struct rt_memheap_item* info);

获取内存堆的详细信息。

2.3 通过FinSH组件

如果启用了FinSH组件,可以使用以下命令:

free  显示内存使用概况。
memtrace  显示内存分配跟踪信息(需开启相关配置)

3.对比总结

功能 Linux RT-Thread
查看物理内存分布 /proc/meminfo, /proc/buddyinfo list_mem
查看进程内存映射 pmap, /proc//maps 不支持(无进程概念)
查看SLAB分配 /proc/slabinfo, slabtop 不支持(通常不使用SLAB)
实时监控 vmstat, slabtop list_mem, memtrace
内存池信息 无直接对应 list_memp

RT-Thread的内存查看功能相对简单,主要针对嵌入式系统的需求设计,而Linux提供了更全面的内存信息查看工具。

加油

你可能感兴趣的:(linux)