0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从软件角度看看内存

麦辣鸡腿堡 来源:TrustZone 作者:TrustZone 2023-10-30 17:41 次阅读

关于内存,从软件的角度去查看,其实作为一个软件程序员,大多数对这个维度的接触还是蛮多的。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背后的实现。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206735
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72765
  • 软件
    +关注

    关注

    67

    文章

    4348

    浏览量

    85622
收藏 人收藏

    评论

    相关推荐

    内存芯片测试软件

    内存芯片测试软件是一个可以电脑内存诊断程序,而且容易操作可以找出所有可能的内存问题。制作出一张可以开机的磁片。只要用这张磁片重新开机之后,就可以开始进行测试了。有各种先进的
    发表于 10-27 09:25

    告别品牌机的烦恼 内存软件超频指南

    告别品牌机的烦恼 内存软件超频指南笔者之前ZOL产品论坛中发现,不少网友、用户都反馈一个问题:升级加装完DDR2-800MHz、DDR2-667MHz内存之后,发现只能运行在667M
    发表于 02-24 17:27

    需求的角度去理解Linux系列:总线、设备和驱动

    需求的角度去理解Linux系列:总线、设备和驱动》是一篇有关如何学习嵌入式Linux系统的方法论文章,也是需求的角度去理解Linux系统软件
    发表于 03-11 14:45

    为什么在CAD软件中旋转图形时输入和实际旋转的角度不同?

    设置里有勘测单位的设置,但在标注样式里无法选择勘测单位,如下图所示。以上就是在使用浩辰CAD软件绘制图纸的过程中,如果发现旋转图形的时候输入的角度和实际旋转的角度不同时,可以看看是否是
    发表于 05-29 16:43

    背光原理的角度分析LCD与LED的区别

    说到显示技术,人们最先想到的就是液晶显示(LED背光技术。但是很多人会将LCD与冷阴极荧光灯管混为一谈,这显然是不正确的,应该背光原理的角度来进行区分,这样才是最为正确的理解方式。希望大家在看过本文之后能够有所收获。
    发表于 10-30 09:57

    如何安全的角度看自动驾驶

    安全的角度看自动驾驶
    发表于 01-25 06:42

    内存访问的软件顺序

    2.2.4 内存访问的软件顺序程序流程中指令的顺序并不能保证相对应的内存处理顺序,原因如下处理器可以重新排序一些内存获取用来提高效率,当然,这种改变不能影响指令顺序的行为处理有多个总线
    发表于 08-24 07:46

    sqlite软件内存泄漏如何解决?

    at function:rt_object_init, line number:358, 而github下载的就能运行),运行一段时间后发现使用内存不断增大,用memtrace工具确定是操作数据库的线程导致,请问造成
    发表于 05-24 15:25

    如何快速调整SMT贴片编程中的特殊元件角度

    界面设置好元件角度补偿值,存入系统库。 贴片编程中在元件资料编辑界面完成1、2步骤操作后,接下来选择“系统库获取”功能图标,软件系统库匹配并下载特殊器件的的角度补偿。这样就完成
    发表于 09-06 13:41

    内存芯片测试软件工具

    内存芯片测试软件工具,操作简单的。
    发表于 03-25 08:57 37次下载

    Elastos内存管理对软件调试的支持

    软件调试支持是操作系统的重要组成部分,而由于内存管理不善造成的软件BUG占软件故障的很大比例。从内存管理的
    发表于 12-01 15:38 19次下载
    Elastos<b class='flag-5'>内存</b>管理对<b class='flag-5'>软件</b>调试的支持

    内存烧写使用说明和烧录软件

    内存烧写使用说明和烧录软件
    发表于 09-06 14:36 45次下载

    角度传感器原理

    角度传感器原理,又需要的朋友可以下来看看
    发表于 12-11 16:57 29次下载

    HFSS软件内存不足的解决方法

    HFSS软件内存不足该如何解决?
    的头像 发表于 07-15 10:15 2.1w次阅读

    内存降价想加内存?不如先来看看内存怎么挑

    熬过这么多年的高价,内存市场终于开始降价了。看到如此大的降价力度,你是不是也想趁机给自己的爱机加条内存呢?但是你可否知道内存条该如何选择呢?今天小编就简单聊聊内存挑选需要注意的几个事项
    的头像 发表于 02-27 11:46 3143次阅读