MAXIM(美信)半导体IC芯片全系列-亿配芯城-从软件角度看看内存
你的位置:MAXIM(美信)半导体IC芯片全系列-亿配芯城 > 芯片资讯 > 从软件角度看看内存
从软件角度看看内存
发布日期:2024-01-09 11:33     点击次数:71

关于内存,从软件的角度去查看,其实作为一个软件程序员,大多数对这个维度的接触还是蛮多的。linux中有个free命令,其就是查看系统内存的情况。

free命令的选项也比较简单,常用的参数命令如下。

-b 以Byte为单位显示内存使用情况。

-k 以KB为单位显示内存使用情况。

-m 以MB为单位显示内存使用情况。

-g 以GB为单位显示内存使用情况。

-o 不显示缓冲区调节列。

-s《间隔秒数》 持续观察内存使用状况。

-t 显示内存总和列。

-V 显示版本信息。

下面是Linux机器中使用free -m命令看到的内存情况。

$ free -mtotal used free shared buff/cache available

Mem: 7763 5507 907 0 1348 1609

Swap: 16197 2940 13257

figo@figo-OptiPlex-9020:~$

可以看到,这个机器上一共有7 763MB物理内存。

total:指系统中总的内存。这里有两种内存,一个是“Mem”,指的是物理内存;另一个是“Swap”,指的是交换磁盘。

used:指程序使用的内存。

free:未被分配的物理内存大小。

shared:共享内存大小,主要用于进程间通信。

buff/cache:buff指的是buffers,用来给块设备做缓存, 芯片采购平台而cache指的是page cache,用来给打开的文件做缓存,以提高访问文件的速度。

available:这是free命令新加的一个选项。当内存短缺时,系统可用回收buffers和page cache。那么availabe = free

buffers + page cache对不对呢?

其实在现在的Linux内核中,这个公式不完全正确,因为buffers和page cache里并不是所有的内存都可以回收的,比如共享内存段、tmpfs和 ramfs 等属于不可回收的。所以这个公式应该变成:available = free + buffers + page cache –不可回收部分。

在我们写代码的时候也会用到malloc()这个函数,如果你申请内存没有用到,那可能是你使用的高级语言,申请内存的函数封装了malloc。

图片

对于这些函数瞅一眼就行了,需要用的时候再好好深入学习一下这个里面的东西。了解这个API背后的实现。



相关资讯