• linux内存机制


    ~# free -m
             total used  free shared buffers cached
    Mem: 16086 8579 7507    0      152      8009
    -/+ buffers/cache: 417 15669  系统分配但未被使用的buffers/cache 数量。
    Swap: 30514 3 30510  表示硬盘上交换分区的使用情况。只有mem被当前进程实际占用完,即没有了bufferscache时,才会使用到swap

    一、在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。
    1. 实际可用内存大小:
    Free(-/+ buffers/cache行)= Free(Mem)+buffers(Mem)+Cached(Mem);
    2. 已经分配的内存大小:
    Used(Mem) = Used(-/+ buffers/cache)+ buffers(Mem) + Cached(Mem)
    3. 物理内存总大小
    total(Mem) = used(-/+ buffers/cache) + free(-/+ buffers/cache)

    二. buffer 与cache 的区别
    A buffer is something that has yet to be "written" to disk.
    A cache is something that has been "read" from the disk and stored for later use.
    2.1 Cache
    Cache:高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。
    由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。
    Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。

    2.2 Buffer
    Buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。
    在Free命令中显示的buffer和cache,它们都是占用内存:
    buffer : 作为buffer cache的内存,是块设备的读写缓冲区,更靠近存储设备,或者直接就是disk的缓冲区。
    cache: 作为page cache的内存, 文件系统的cache,是memory的缓冲区

  • 相关阅读:
    Android实例-Delphi在运行时更改Android屏幕旋转(IOS也支持,不过我可没有苹果机,测试不了)
    delphi实现电脑屏幕旋转(电脑屏幕,不是手机屏幕)
    教程-关于escape和URI之间的不同!
    在Delphi中URLEncode文件名的最佳方法是什么?
    Delphi实现js中的escape()编码和unescape()解码
    面向对象: 接口与对象生存周期,接口自动释放
    问题-Delphi在做窗体派生时提示Resource TForm2 not found
    问题-delphi idTCPserver-Socket error问题详解
    delphi 求两个时间差
    Delphi 解决StrToDateTime()不是有效日期类型的问题
  • 原文地址:https://www.cnblogs.com/rusking/p/3660304.html
Copyright © 2020-2023  润新知